目标时区的日期是否符合ISO 8601标准?

3

我正在尝试解析一个ISO 8601格式的日期,但有些细节不太清楚。

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

这是指莫斯科时间的07:16还是10:16?我的意思是,我需要给日期加上三个小时呢,还是这个日期已经是莫斯科时间了,时区只是展示它与UTC之间的差异?

P.S. 我尝试找到相关信息,但无处不是一些通用的格式描述,没有具体的细节。


1
相关/类似:Java日期时间转换为给定时区 - Ole V.V.
@OleV.V. 谢谢您提供的链接! - Denis Sologub
1个回答

4
指定的时间是当地时间,因此2020-04-16T07:16:34.858215+03:00表示莫斯科时间上午7:16,或UTC时间上午4:16。 维基百科有一个很好的例子,至少在某种程度上澄清了事情:
以下所有时间都指同一时刻:“18:30Z”,“22:30 +04”,“1130−0700”和“15:00−03:30”。除Z外,不使用航海时区字母。要计算UTC时间,必须从当地时间减去偏移量,例如对于“15:00−03:30”,请执行15:00 -(- 03:30)以获取18:30 UTC。
非常不幸的是,ISO-8601将其称为时区,而实际上它只是UTC偏移量-它绝对不会指定实际时区(例如,您无法知道一分钟后本地时间将是什么)。

谢谢您的回答!我阅读了俄语维基百科版本,不幸的是,没有那么多细节。 - Denis Sologub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接