我从api收到以下字符串:
{ "CallTime" : "2018-02-23T16:00:01.806Z" }
在我的数据库中,我想在祖鲁时间存储所有日期/时间。为此,我使用DateTime.Parse
将此字符串转换为DateTime
对象。然后,我使用ToUniversalTime()
将时间更改为zulu时间(然后我将其存储在数据库中)。
但是,我不确定我是否正确理解时区的解释。如果我看一下结果,这就让我感到困惑:
DateTime.Parse("2018-02-23T16:00:01.806Z") /* = 2/23/2018 10:00:01 AM */
DateTime.Parse("2018-02-23T16:00:01.806Z").ToUniversalTime() /* = 2/23/2018 4:00:01 PM */
原始字符串是否已经在zulu时间?我认为这两个值应该是相同的。原始字符串中没有时区的指示,因此Parse
函数不会自动假设zulu时间吗?或者,Parse
是否使用本地系统时区并使用它将字符串转换为对象?
答案 0 :(得分:1)
正确的答案是:是的。
正如许多评论指出的那样,DateTime.Parse()
默认使用DateTimeKind.Local-> 2/23/2018 10:00:01 AM
当您致电ToUniversalTime()
时,您再次获得UTC时间 - > 4PM