C# DateTime 解析不一致
C# DateTime Parse inconsistency
我有一个关于 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 ...)
我该如何防止这种情况?
我猜你所在的时区是 UTC+2。
var time = DateTime.ParseExact("2018-06-13T12:05:55.7738391Z", "yyyy-MM-ddTHH:mm:ss.fffffffZ", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(time.ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); // + 2 hours ?
Console.WriteLine(time.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); // +0 hours ?
你说的是UTC时间(Z = zulu time = UTC+0),但是你电脑的时区自动加了2小时。
--
为了完全正确,您应该使用 time.ToString("o");
。你混淆了事情,因为你的 ToString
包含一个尾随 Z,它不是由格式化程序添加但只是复制到输出中。
我有一个关于 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 ...) 我该如何防止这种情况?
我猜你所在的时区是 UTC+2。
var time = DateTime.ParseExact("2018-06-13T12:05:55.7738391Z", "yyyy-MM-ddTHH:mm:ss.fffffffZ", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(time.ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); // + 2 hours ?
Console.WriteLine(time.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); // +0 hours ?
你说的是UTC时间(Z = zulu time = UTC+0),但是你电脑的时区自动加了2小时。
--
为了完全正确,您应该使用 time.ToString("o");
。你混淆了事情,因为你的 ToString
包含一个尾随 Z,它不是由格式化程序添加但只是复制到输出中。