我遇到了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
可能导致例外的原因是什么?
提前谢谢!
答案 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";
但是,您将丢失时区信息。