首页 > 解决方案 > ISO 8601 可以表示开始/结束是持续时间的时间间隔吗?

问题描述

ISO 8601:2004 定义了一种时间间隔格式,可以用各种格式表示,包括“c)由开始和持续时间”和“d)由持续时间和结束”。

单看维基百科的文章,这些例子似乎只提供startend成为“时间点”,例如2007-03-01T13:00:00Z/P1Y2M10DT2H30M从 2007 年 3 月开始的 1 年、2 个月、10 天、2 小时和 3 分钟的时间间隔-世界标准时间 01 13:00。

是否可以表示在一段时间后开始或结束的时间间隔?例如,P1Y/P1Y2M10DT2H30M将是相同的持续时间,但在 1 年后“开始”。

这种语法对于建模相对时间间隔很有用,尤其是在与重复限定相结合时。例如,每月的退休金可以合理地表示为R/P65Y/1M

标签: timeformatstandardsiso8601

解决方案


ISO-8601 中没有定义“P1Y/P1Y2M10DT2H30M”的表述。本文提到了“时间间隔”的以下四种变体:

a)开始和结束定义为时间点,例如=> 2019-08-27/2019-08-29

b) 在(日期)或时间线上没有任何固定锚点的持续时间,例如 => P3D

c) 从时间点和持续时间开始,例如 => 2019-08-27/P3D

d) 持续时间和结束作为时间点,示例 => P3D/2019-08-29

所以你的问题“是否可以表示在一段时间后开始或结束的时间间隔?” 可以用明确的“否”来回答。老实说,持续时间的表达会让大多数用户感到困惑。


推荐阅读