Time ISO 8601小时数不一致

Time ISO 8601小时数不一致,time,iso8601,Time,Iso8601,ISO 8601第5.3节规定 小时由[01]到[24]之间的两位数字表示 但在下面,第5.3.2节允许在午夜“00:00:00”和“24:00:00” 我还从经验中知道,午夜通常用数字[00]表示,除非在午夜的第二秒,否则绝对不能用数字[24]表示。因此,这似乎是规范中的一个错误。肯定有人在我之前就注意到了这一点。有公布的勘误表吗?我遗漏了什么吗?我不知道最新ISO-8601-paper中的第5.3节,但请看以下内容: 4.2.3午夜 根据4.2.2,午夜基本和扩展格式的完整表示应以 以下两种

ISO 8601第5.3节规定

小时由[01]到[24]之间的两位数字表示

但在下面,第5.3.2节允许在午夜“00:00:00”和“24:00:00”


我还从经验中知道,午夜通常用数字[00]表示,除非在午夜的第二秒,否则绝对不能用数字[24]表示。因此,这似乎是规范中的一个错误。肯定有人在我之前就注意到了这一点。有公布的勘误表吗?我遗漏了什么吗?

我不知道最新ISO-8601-paper中的第5.3节,但请看以下内容:

4.2.3午夜

根据4.2.2,午夜基本和扩展格式的完整表示应以 以下两种方式之一:

    Basic format       Extended format 
 a) 000000             00:00:00 (the beginning of a calendar day) 
 b) 240000             24:00:00 (the end of a calendar day) 
这些陈述可能已经减少 精度符合4.2.2.3或可指定为时间 表达式符合4.2.2.5的要求。代表午夜 表示可以用包含以下内容的小数展开: 根据4.2.2.4的规定,仅为零

注1:午夜通常表示为[00:00]或[24:00]

注2:一个日历日的结束时间[24:00]与下一个日历日的开始时间[00:00]一致 日期,例如1985年4月12日的[24:00]与4月13日的[00:00]相同 1985如果与日期或时间间隔没有关联,则a)和b)表示24小时计时中相同的本地时间 系统

注3:代表a)或b)的选择取决于 与日期或时间间隔的任何关联。陈述,其中 [hh]的值[24]仅适用于根据4.4表示时间间隔的结束或根据4.5表示重复时间间隔

所以我认为一切都很好,没有矛盾。


顺便说一句,我在Java时间库Time4J(参见class
net.Time4J.PlainTime
)中修改了24:00这个特殊值,以实现更优雅的时间间隔描述。从现实生活中我也知道,这样的小时值并不罕见(例如在开店时间)。

您可能看到的是标准的旧版本。