Time ISO 8601小时数不一致
ISO 8601第5.3节规定 小时由[01]到[24]之间的两位数字表示 但在下面,第5.3.2节允许在午夜“00:00:00”和“24:00:00”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,午夜基本和扩展格式的完整表示应以 以下两种
我还从经验中知道,午夜通常用数字[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这个特殊值,以实现更优雅的时间间隔描述。从现实生活中我也知道,这样的小时值并不罕见(例如在开店时间)。您可能看到的是标准的旧版本。