【发布时间】:2019-05-20 18:31:37
【问题描述】:
我试图理解使用时区信息解析 utc 时间,但我的代码给了我奇怪的结果,或者至少我不理解。
var utcTime = DateTime.Parse("2019-05-20T13:00:00Z", null, System.Globalization.DateTimeStyles.RoundtripKind);
// utcTime = {5/20/2019 1:00:00 PM} (its kind is Utc and this is accepted)
var zonedTime1 = DateTime.Parse("2019-05-20T13:00:00-04:00", null, System.Globalization.DateTimeStyles.RoundtripKind);
//zonedTime1 = {5/20/2019 1:00:00 PM} (its kind is Local, but I was expecting {5/20/2019 9:00:00 AM} with Local kind)
var zonedTime2 = DateTime.Parse("2019-05-20T13:00:00+04:00", null, System.Globalization.DateTimeStyles.RoundtripKind);
//zonedTime2 = {5/20/2019 5:00:00 AM} (its kind is Local, but I was expecting {5/20/2019 5:00:00 PM} with Local kind)
我想知道我哪里错了,或者我的期望哪里错了。如果 utcTime 被正确解析,那么为什么 zonedTime1 和 zonedTime2 会不正确?
【问题讨论】:
-
您机器的时区是什么,您使用什么来查看这些值? (虽然edit 考虑使用您使用的任何格式添加
WriteLine( zonedTime2.ToString(????)),但以“o”开头是个好主意)。 -
您的结果似乎与您处于 -4 时区一致。我想那是东部时间。