DateTime.TryParseExact with"U"和DateTimeStyles.AdjustToUniversal

jef*_*eff 1 .net c# datetime parsing date-formatting

如何格式化日期/时间字符串,以便可以DateTime.TryParseExact使用"U"格式字符串解析它DateTimeStyles.AdjustToUniversal?换句话说,什么是有效的timestampString,这样isDateTime被设置为true在下面的代码?

string timestampString = "...";

DateTime timestamp;
bool isDateTime = DateTime.TryParseExact(
    timestampString, "U", null, DateTimeStyles.AdjustToUniversal, out timestamp);
Run Code Online (Sandbox Code Playgroud)

Mic*_*Liu 5

以下是美国文化的一个例子:

string timestampString = "Saturday, April 20, 2013 9:00:00 PM";

DateTime timestamp;
bool isDateTime = DateTime.TryParseExact(timestampString, "U", null,
    DateTimeStyles.AdjustToUniversal, out timestamp);

Console.WriteLine(isDateTime);     // True
Console.WriteLine(timestamp);      // 4/20/2013 9:00:00 PM
Console.WriteLine(timestamp.Kind); // Utc
Run Code Online (Sandbox Code Playgroud)

如MSDN Library中标准日期和时间格式字符串主题中所述,"U"表示由DateTimeFormatInfo.FullDateTimePattern属性定义的格式,并自动转换为UTC.对于en-US,这种格式是"dddd, MMMM d, yyyy h:mm:ss tt".