ISO 8601,第5.3节规定
小时由[01]至[24]
中的两位数字表示
但在下文中,第5.3.2节允许午夜“00:00:00”和“24:00:00”。
我也从经验中知道,午夜小时通常由数字[00]表示,而从[24]除以午夜的确切秒数。所以这似乎是规范中的错误。当然有人在我面前注意到这一点。是否有出版的勘误表?我错过了什么吗?
答案 0 :(得分:0)
我不知道最新的ISO-8601论文中的第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]相同 如果与日期或时间间隔没有关联,则a)和b)代表24小时计时中的相同当地时间 系统。
注3:表示a)或b)的选择取决于 与日期或时间间隔的任何关联。表示在哪里 [hh]的值[24]仅优先表示符合4.4的时间间隔的结束或符合4.5的重复时间间隔。
所以我认为一切都很好,没有不一致。
顺便说一句,我已经在我的Java时间库Time4J中调整了这个特殊值24:00(参见类net.time4j.PlainTime
)以启用更优雅的时间间隔描述。而且我也从现实生活中知道这样的小时值并不罕见(例如在商店开放时间)。