带时区和时间跨度的 ISO8601

ISO8601 with Timezone and Timespan

我读过我可以通过附加 Z+02-03:00 来添加 ISO8601 日期的时区信息。 我还读到我可以通过附加 P 和时间来添加时间跨度信息,例如 4DT2H(4 天零两小时)。

如何将两者结合起来?首先是时区还是时间跨度?

例如2018-10-18T14:20+02P1D 对比 2018-10-18T14:20P1D+02

通过使用两个值,您基本上是在描述事件何时开始以及持续多长时间。这些值包含在 ISO 8601 规范的第 4.4.4.3 节中,标题为 "Representations of time interval identified by start and duration".

规范要求时间戳和时间段部分完全符合既定格式,用正斜杠 (/) 字符分隔。

例如:2018-10-18T14:20+02/P1D

时区偏移量(无论是 Z+02 还是 -03:00)属于时间戳,在斜杠之前。

就是说,据我所知,很少有解析器能够理解这种格式。它是合规的,但并非每个 ISO 8601 解析器都必须理解规范的每个部分。