C#DateTime ParseExact异常

时间:2012-11-08 15:47:05

标签: c# exception datetime datetime-format

我遇到了DateTime.ParseExact方法的问题,该方法会抛出我的 输入字符串格式不正确的异常

代码如下:

class Program
    {
        static void Main(string[] args)
        {
            var rawDate = "Thu, 08 nov 2012 15:19:18 0";
            var _format = "ddd, dd MMM yyyy HH:mm:ss K";
            var date = DateTime.ParseExact(rawDate, _format, CultureInfo.InvariantCulture);
        }
    }

我在SO上发现了一些类似的线程,具有确切的日期格式,没有人在那里报告任何问题。

我跟着这个作为我的向导:

ddd = Three letter Day of week
MMM = Three letter month
dd = Two digit day of month 01-31  (use "d" for 1-31)
HH = Hours using 24-hour clock. 00-24  (use "H" for 0-24)
mm = Minutes. 00-59
ss = Seconds. 00-59
K = Time zone information
yyyy = 4-digit year

可能导致例外的原因是什么?

提前谢谢!

4 个答案:

答案 0 :(得分:3)

我认为你的' K'可能有点偏。

此处的链接可能会给出解释:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#KSpecifier

您可以将此处留空并删除0 - K

答案 1 :(得分:2)

您的输入字符串中的时区错误 - 它必须采用+00:00格式。

要测试日期时间格式字符串,请反向运行:

Console.WriteLine(DateTime.Now.ToString(_format));

给出了

Thu, 08 Nov 2012 15:50:58 +00:00

答案 2 :(得分:1)

时区信息对我来说似乎是最可疑的。

答案 3 :(得分:0)

试试这个:

var _format = "ddd, dd MMM yyyy HH:mm:ss 0";

但是,您将丢失时区信息。