DateTime检查它是否为UTC格式

时间:2016-07-11 13:39:14

标签: c# date datetime formatting

我对日期时间格式有疑问 我有一个字符串,代表我的日期时间: “2014-08-01T10:12:11.0Z”。实际上,据我所知,它是一个utc格式的日期时间,因为'Z'显示我偏离UTC。

然后我尝试执行

DateTime.TryParseExact("2014-08-01T10:12:11.0Z", "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out value_);

(其中value_只是我新创建的DateTime对象)只是为了检查我的字符串是否代表UTC时间。这个表达给了我“假”。

所以,我想知道,我应该通过什么格式代替“yyyy-MM-ddTHH:mm:ssZ”或者我应该改变别的东西?

1 个答案:

答案 0 :(得分:1)

该字符串末尾的.0为十分之几秒,因此您需要为其添加一个解析字符:F

此外,Z的解析字符为K,而不是Z

因此,要解析该字符串,您需要执行此操作:

DateTime.TryParseExact("2014-08-01T10:12:11.0Z", "yyyy-MM-ddTHH:mm:ss.FK", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out value);

另请注意,如果您希望解析字符串中的时区信息(即,如果它不是UTC时间),那么将Z替换为时区偏移,+ ve或-ve:

"2014-08-01T10:12:11.0-07:00" // Note time zone offset at the end.