0

转换字符串的最佳方法是什么,例如:

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

DateTime.NET 中?我想尽可能多地保留日期,即时区。

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

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

2 回答 2

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);
于 2012-11-06T13:07:12.150 回答
-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());
于 2012-11-06T13:13:37.847 回答