ISO 8601持续时间中零的标准表示是什么?

时间:2015-04-23 12:13:28

标签: date time duration iso8601

http://en.wikipedia.org/wiki/ISO_8601#Durations

目前尚不清楚ISO 8601持续时间中零的最正确表示是什么。

可能的候选人:

PT0S

本网站: http://www.ostyn.com/standards/scorm/samples/ISOTimeForSCORM.htm

PT0H0M0S

或者最简单的可能是

P

但最正确的是什么?是否存在规范的零持续时间表示?

1 个答案:

答案 0 :(得分:6)

单个字母" P"肯定是错的,因为必须至少有一个持续时间元素。

SCORM规范要求" PT0H0M0S"只是因为与早期的SCORM版本向后兼容,而不是因为ISO强制要求它。引用你给出的链接:

  

SCORM 2004 1.3.1一致性测试套件编码为要求PT0H0M0S格式为总尝试的初始零值   时间;因此,建议在兼容性方面使用该格式   需要早期实施SCORM 2004。

因此,如果您不使用SCORM,那么表达式" PT0S"完全足够了。但是,我不记得原始ISO-8601论文中的任何位置,他们已经指定了零持续时间的样子。相反,ISO-8601还描述了替代的持续时间格式,如" P0000-00-00T00:00"。

如果我们解释单词" canonical"那么,不仅有一个单一的规范表示。 as"符合ISO-8601"。

更新(查看原始ISO论文后):

ISO-8601要求零持续时间至少有一个元素(4.4.3.2.c - 第21页):

  

如果是年数,月数,日数,小时数,分钟数或秒数   这些表达式等于零,数字和相应的   指定人可能缺席;但是,至少有一个数字及其数字   指定人员应在场。

第4.4.3.3段说:

  

表达式在表达式中的完整表示   替代格式如下:

     

基本格式:PYYYYMMDDThhmmss或PYYYYDDDThhmmss

     

扩展格式:PYYYY-MM-DDThh:mm:ss或PYYYY-DDDThh:mm:ss

请记住,并非每个软件都能支持所有格式变化。