DateTime.TryParseExact with“U”和DateTimeStyles.AdjustToUniversal

时间:2013-04-21 03:56:27

标签: c# .net parsing datetime 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);

2 个答案:

答案 0 :(得分: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

如MSDN Library中的Standard Date and Time Format Strings主题所述,“U”表示DateTimeFormatInfo.FullDateTimePattern属性定义的格式,自动转换为UTC。对于en-US,此格式为"dddd, MMMM d, yyyy h:mm:ss tt"

答案 1 :(得分:1)

来自this MSDN post:

  

AdjustToUniversal 解析输入所代表的字符串,如果   必要时,将其转换为UTC。它相当于解析一个字符串   然后调用的DateTimeOffset.ToUniversalTime方法   返回DateTimeOffset对象。

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

我不确定格式“U”是否适用于日期时间。例如,我没有在MSDN date time formats

上找到它
相关问题