【发布时间】:2018-12-26 04:37:43
【问题描述】:
我有一个关于 DateTime 的问题 我的代码是:
DateTime.ParseExact("2018-06-13T12:05:55.7738391Z", "yyyy-MM-ddTHH:mm:ss.fffffffZ", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")
结果是:
"2018-06-13T14:05:55.7738391Z"
为什么 DateTime 会增加 2 小时? (我试过 ...00:05:55 ...) 以及如何防止这种情况发生?
【问题讨论】:
-
可能是时区问题。
-
在
ToString之前尝试使用.ToUniversalTime()。 -
其他选项是使用样式,例如。
DateTimeStyles.AdjustToUniversal在ParseExact()。要解决的一件事是格式,最后你应该有 K 表示种类,而不是 Z,除非你实际上假设日期时间将只有 UTC。 -
最好
DateTimeStyles.RoundTripKind会更好,因为Z可以很好地映射到DateTimeKind.Utc。
标签: c# datetime timezone datetime-format invariantculture