3

可能重复:
解析日期时间字符串

我正在尝试在 C# 中解析以下 DateTime:

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.

有人知道这里有什么问题吗?

4

2 回答 2

11

你可以使用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);

此处的文档和此处字符串DateTime格式选项。

您也可以在这里查看 {Complr.com}

于 2012-07-26T15:33:40.647 回答
6

您需要指定解析格式,因为这是非标准的。DateTime.ParseExact允许您指定格式。

像这样的东西会起作用,但是我还没有验证那个时区部分是否工作正常,似乎给了我一个 1800 小时的日期/时间......啊,这是因为我所在的地方是 BST(格林威治标准时间 + 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此处记录了字符串格式化选项,您可以使用这些的任意组合创建解析字符串以DateTime成功解析。

另一个例子可以在这里找到:Parse DateTime From Odd Format

于 2012-07-26T15:37:18.757 回答