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

Eml*_*gan 5 time duration date iso8601

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

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

可能的候选人

PT0S
Run Code Online (Sandbox Code Playgroud)

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

PT0H0M0S
Run Code Online (Sandbox Code Playgroud)

或者最简单的是

P
Run Code Online (Sandbox Code Playgroud)

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

Men*_*ild 8

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

SCORM规范仅需要"PT0H0M0S",因为它与早期的SCORM版本向后兼容,而不是因为ISO要求它.来自你给出的链接的引用:

对SCORM 2004 1.3.1一致性测试套件进行编码,要求PT0H0M0S格式为总尝试时间的初始零值; 因此,建议在需要与早期SCORM 2004实现兼容的情况下使用该格式.

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

如果我们将"规范"一词解释为"符合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

还要记住,并非每个软件都能够支持所有格式变化.

  • 我最终使用“PT0H0M0S”,因为其他系统期望它。但正如您的回答所说,没有一种单一的表示形式。 (2认同)