【发布时间】:2020-05-29 00:21:18
【问题描述】:
今天,我观察到DateTime.Parse(String) 方法在不同服务器上运行时出现了一些奇怪的行为。这可以在不同的在线 C# 编译器中观察到。
我的输入格式为yyyy-MM-ddTHH:mm:ssZ。示例:让我们使用 2020-02-12T16:57:36Z 转换为刻度是:637171234560000000(使用 https://tickstodatetime.azurewebsites.net/ 转换)
这是我用于测试此行为的代码:
DateTime parsedDateTime = DateTime.Parse("2020-02-12T16:57:36Z");
Console.WriteLine(parsedDateTime + " " + parsedDateTime.Kind.ToString() + " " + parsedDateTime.Ticks);
在https://dotnetfiddle.net/akuyiI 上,它返回02/12/2020 16:57:36 Local 637171234560000000。
在https://rextester.com/XWH12209 上,它返回12.02.2020 17:57:36 Local 637171270560000000
我知道DateTime被解析为本地时区并以本地时间显示,但是为什么系统之间的滴答数也不同?
【问题讨论】:
-
那些刻度代表的时间正好相隔一小时,这表明这是一个时区问题(不是夏令时,除非你碰巧在南半球......)