解析日期字符串.net

时间:2012-11-06 12:56:22

标签: c# .net datetime

转换字符串的最佳方法是:

Mon Nov 05 2012 21:27:58 GMT+0000 (GMT Standard Time)

进入.NET中的DateTime?我希望保留尽可能多的日期,即TimeZone。

我正在尝试这个,但它失去了GMT

DateTime.ParseExact(date.Substring(0, 24),
                             "ddd MMM d yyyy HH:mm:ss",
                             CultureInfo.InvariantCulture);

2 个答案:

答案 0 :(得分:3)

它不是很强大,但它适用于你的例子:

DateTimeOffset.ParseExact(date.Substring(0, 33) // remove time zone
                              .Remove(25,3)     // remove "GMT" before offset
                              ,"ddd MMM dd yyyy HH:mm:ss zzz"
                              ,System.Globalization.CultureInfo.InvariantCulture);

答案 1 :(得分:-1)

分割字符串并使用某些格式将其转换为日期时间的简便方法。但是如果其他一些格式出现在你身上呢。

尝试这个。

http://www.codeproject.com/Articles/33298/C-Date-Time-Parser

样品

string str = @"Your program recognizes string : 21 Jun 2010 04:20:19 -0430 blah blah.";
DateTimeRoutines.ParsedDateTime pdt;
if(str.TryParseDateTime(DateTimeRoutines.DateTimeFormat.USA_DATE, out pdt) && pdt.IsUtcOffsetFound) 
Console.WriteLine("UTC date&time was found: " + pdt.UtcDateTime.ToString());