【发布时间】:2018-08-18 07:29:56
【问题描述】:
我正在尝试了解 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 AM} 背后的数学原理是什么,我无法理解。
【问题讨论】:
-
+1000 最后表示 UTC + 10 小时 0 分钟。你应该看看wikipedia写的关于ISO 8601的内容。关于转换我不知道,也许是c#?我相信这样的问题已经回答过很多次了。
-
感谢 Joakim,我在阅读了 wiki 的页面后提出了这个问题,它并没有太大帮助。正如我所了解的那样,UTC +10 小时,但这是否意味着该日期是当地时间或 UTC?另外,是的,那是 c# 代码,当代码运行时,+10 特别没有意义,它会将时间推迟几个小时......从 2018 年 8 月 18 日到 2018 年 8 月 17 日上午 7 点,显然不是 +10区别..
-
+1000表示它在时区 UTC + 10 小时内,如果您不在该时区,则在转换和使用本地时间时会得到不同的时间值。这是一个棘手的领域,很容易出错,这取决于您想对日期做什么,最简单的方法可能是先将其转换为 UTC,然后再转换为您的本地时区。无论如何,如果您需要更多关于实际转换的帮助,您应该使用c#标记这个问题。