我对日期时间格式有疑问。
我有一个字符串,代表我的日期时间:
“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”或者我应该更改其他格式?
最佳答案
该字符串末尾的 .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.
关于c# - 检查 DateTime 是否为 UTC 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38308458/