timezone - 日期是否在 ISO 8601 的目标时区?

标签 timezone timezone-offset iso8601

我试图解析 ISO 8601 格式的日期,但有些时候我不太清楚。

例如,我有下一个日期:2020-04-16T07:16:34.858215+03:00Europe/Moscow 时区。

在莫斯科时间是 07:16 还是 10:16?我的意思是我需要在日期前加上 3 小时,还是日期已经是莫斯科时间,而时区只是显示它与 UTC 的区别?

P.S. 我试图找到有关它的信息,但到处都是通用格式描述,没有详细信息。

最佳答案

指定的时间是本地时间,因此 2020-04-16T07:16:34.858215+03:00 表示莫斯科时间早上 7:16,或世界标准时间早上 4:16。

Wikipedia有一个很好的例子,至少在某种程度上澄清了事情:

The following times all refer to the same moment: "18:30Z", "22:30+04", "1130−0700", and "15:00−03:30". Nautical time zone letters are not used with the exception of Z. To calculate UTC time one has to subtract the offset from the local time, e.g. for "15:00−03:30" do 15:00 − (−03:30) to get 18:30 UTC.

非常不幸的是,ISO-8601 将此作为时区进行讨论,而它只是一个 UTC 偏移量 - 它绝对没有指定实际时区。 (例如,您无法判断一分钟后的本地时间。)

关于timezone - 日期是否在 ISO 8601 的目标时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61245073/

相关文章:

javascript - 重构一些有很多重复代码的单元测试。

Linux 时区警告

javascript - 如何在 JavaScript 中处理 DST 和时区

mysql - MySQL 数据库 : MySQL Incorrect datetime value 的 ISO 8601 时间戳

java - 在Java中创建新的Date对象时自动更改时区

sql - 时区相等的 Postgres 时间

java - 具有夏令时的 GregorianCalendar.set() 行为

java - 当 java 代码以 UTC 执行时,如何在 ET 中存储一个带有偏移量的日期

java - 时区格式,如何知道时区

NSDateFormatter 和时区格式为 "+HH:mm"的字符串