ISO 8601日期时间理解

时间:2018-08-18 07:29:57

标签: datetime iso8601

我正在尝试理解ISO 8601格式的日期读取,并且找不到很好的文档来读取。

如果我的代码中有时间,例如“ 2018-08-18T00:00:00 + 1000”,这是本地时间还是UTC时间? 当我使用Convert.ToDateTime(“ 2018-08-18T00:00:00 + 1000”)进行转换时,将获得以下日期时间{8/17/2018 7:00:00 AM}。我不确定这是UTC日期时间还是本地时间?

“ 2018-08-18T00:00:00 + 1000”转换为{8/17/2018 7:00:00}背后的数学是什么,我无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

您正在要求2018-08-18T00:00:00+1000后面的数学运算显示为8/17/2018 7:00:00 AM

首先8/17/2018 7:00:00 AM只是显示日期和时间的另一种格式。转换为ISO 8601字符串后,其外观应为:2018-08-17T07:00:00

+1000表示法结尾处的

2018-08-18T00:00:00+1000是时区偏移量。您可以将该字符串读取为 UTC 2018年8月18日加上十个小时。因此,它将与2018-08-18T10:00:00Z相同。

因此,我们的UTC日期为2018年8月18日上午10点,显示为区域设置日期为2018年8月17日上午7点。这意味着您所在的时区比UTC晚27小时。

在UTC之前(或之后14个小时)超过12小时的时区不存在(据我所知)。因此,我假设您的示例中有错字。另一个原因可能是日期解析器完全损坏。

但我仍然希望您能掌握转换背后的数学原理。