DateTime.TryParseExact with "U" and DateTimeStyles

本文关键字:quot and DateTimeStyles TryParseExact DateTime with | 更新日期: 2023-09-27 18:10:07

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

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

DateTime.TryParseExact with "U" and DateTimeStyles

这里有一个美国文化的例子:

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

在MSDN库的标准日期和时间格式字符串主题下记录,"U"表示由DateTimeFormatInfo定义的格式。FullDateTimePattern属性,并自动转换为UTC。对于en-US,此格式为"dddd, MMMM d, yyyy h:mm:ss tt"

From this MSDN post:

adjusttuniversal 解析由input和if表示的字符串必要时,将其转换为UTC。它相当于解析字符串然后调用DateTimeOffset。方法的tuniveraltime方法返回DateTimeOffset对象。

所以,先试着解析你的日期。

我不确定格式"U"是有效的日期时间。例如,我没有在MSDN日期时间格式页面

上找到它