解析日期时间使用C#
Possible Duplicate:
Parse Datetime string解析日期时间使用C#
我试图解析以下日期时间在C#:
string date = "Wed Jul 25 19:41:36 2012 +0200"
DateTime result = DateTime.Parse(date);
而且我发现了以下错误:
System.FormatException : String was not recognized as a valid DateTime.
任何人都知道什么这里是问题吗?
您可以使用DateTime.ParseExact()
。例如
更新:
string dateString = "Your date";
string format = "ddd MMM dd HH:mm:ss yyyy %K";
DateTime dateTime = DateTime.ParseExact(dateString, format,
CultureInfo.InvariantCulture);
Console.WriteLine(dateTime);
Documentation Here和DateTime
字符串格式化选项here。
不挑剔,因为它非常接近,但它不适合OP包含的时区偏移。 – 2012-07-26 15:34:11
我刚刚在一些研究后更新了答案。对不起,第一个。 – 2012-07-26 15:39:10
好的,谢谢,我会接受你的回答,你是第一个...... – 2012-07-26 15:39:44
你需要指定解析格式,因为这是不规范的。 DateTime.ParseExact
允许你指定格式。
这样的事情会起作用
但是我还没有验证那个时区部分是否工作正常,似乎在1800时给了我一个日期/时间......
啊这是因为我在哪里它是BST(GMT +1)。
static void Main(string[] args)
{
string date = "Wed Jul 25 19:41:36 2012 +0200";
string format = "ddd MMM dd HH:mm:ss yyyy %K";
//string format = "ddd MMM dd HH:mm:ss yyyy zzz"; // Also works.
DateTime dateTime = DateTime.ParseExact(date, format, CultureInfo.InvariantCulture);
Console.ReadLine();
}
DateTime
字符串格式化选项记录here,您可以创建使用它们的任意组合来分析一个DateTime
成功解析字符串。
的另一个例子可以在这里找到:Parse DateTime From Odd Format
@PeterRitchie定式两份,如果你忽略的格式,我个人现在回答这3个,但* *技术上的格式已经每一次改变:-) – 2012-07-26 15:44:11
不确定人们为什么重复关闭...告诉OP解析字符串*存在*并不回答整个问题。 – 2012-07-26 15:55:33