繁体   English   中英

两个日期之间的C#差异,其中一个以Z结尾?

[英]C# difference between two dates where one ends with a Z?

我有两个约会

DateTime date1Z = DateTime.Parse("2014-05-22 23:39:29Z");
DateTime date1ZKind = DateTime.SpecifyKind(DateTime.Parse("2014-05-22 23:39:29Z"), DateTimeKind.Utc);

DateTime date2 = DateTime.Parse("2014-05-22 23:39:29");
DateTime date2Kind = DateTime.SpecifyKind(DateTime.Parse("2014-05-22 23:39:29"), DateTimeKind.Utc);

Console.WriteLine(date1Z);
Console.WriteLine(date1ZKind);
Console.WriteLine(date2);
Console.WriteLine(date2Kind);

打印

23/05/2014 11:39:29 a.m.
23/05/2014 11:39:29 a.m.
22/05/2014 11:39:29 p.m.
22/05/2014 11:39:29 p.m.

有人可以解释这里发生的事情吗?

你居住在新西兰,比UTC高出+12。 这符合您遇到的日期差异。 如上所述,Z代表UTC。

使用后缀“Z”是日期简写,表示日期时间是“祖鲁”时间,这是UTC时间的另一个单词。 前两个日期被解析为UTC,而最后两个日期被解析为所讨论的计算机上的任何时间。

所以回答你关于发生了什么的问题:后两个日期被当地时间抵消,显然是+12:00(加上12个小时),而前两个不是(因为它们被标记为“祖鲁语”) “或UTC时间)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM