使用C#解析DateTime

Dan*_*lba 3 .net c# string datetime

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

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

string date = "Wed Jul 25 19:41:36 2012 +0200"
DateTime result = DateTime.Parse(date);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

System.FormatException : String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

谁知道这里有什么问题?

Joh*_*Woo 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);
Run Code Online (Sandbox Code Playgroud)

文档这里DateTime字符串格式选项在这里.

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

  • 不要挑剔,因为它非常接近,但它不能满足OP所包含的时区偏移. (2认同)

Ada*_*rth 6

您需要将解析格式指定为非标准格式.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();
    }
Run Code Online (Sandbox Code Playgroud)

DateTime这里记录字符串格式化选项,您可以使用这些的任意组合创建一个解析字符串来DateTime成功解析.

另一个例子可以在这里找到:从奇数格式解析DateTime