如何格式化日期/时间字符串,以便DateTime.TryParseExact
使用“U”格式字符串和DateTimeStyles.AdjustToUniversal
对其进行解析?换句话说,什么是有效的timestampString
,以便isDateTime
在以下代码中设置为true
?
string timestampString = "...";
DateTime timestamp;
bool isDateTime = DateTime.TryParseExact(
timestampString, "U", null, DateTimeStyles.AdjustToUniversal, out timestamp);
答案 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)
AdjustToUniversal 解析输入所代表的字符串,如果 必要时,将其转换为UTC。它相当于解析一个字符串 然后调用的DateTimeOffset.ToUniversalTime方法 返回DateTimeOffset对象。
所以,首先尝试解析你的日期。
我不确定格式“U”是否适用于日期时间。例如,我没有在MSDN date time formats页
上找到它