ISO 8601日期和时间格式中的破折号是什么意思?

3
ISO 8601日期和时间格式中的短横线代表什么意思?
--0412
--1022T1410
---12

这是当前的年份和月份吗?还是指某个「最小」的年份或其他什么东西?

如果它是当前的年份,那么这意味着我不能在 .Net 的 DateTimeOffset 对象中表示它,因为当解析“---12”字符串时将会设置特定的年份和月份。

2个回答

3
在 ISO 8601:1998 和 ISO 8601:2000 中,它们被称为截断表示法,其中每个连字符表示省略的组件。 --MMDD 表示在隐含的年份中的一个特定日期。由于引入了具有隐含世纪的截断表示法的歧义,截断表示法在 ISO 8601:2004 中被删除。

谢谢Chansen。嗯...我不知道它们在ISO 8601:2004中被删除了。vCard RFC 6350(2011年8月)指出,“可以使用[ISO.8601.2000]第5.2.1.3 d)、e)和f)节中指定的截断表示法。” - IT Hit WebDAV
@ITHitWebDAV RFC 6350 可能受到 RFC 2425 的限制,RFC 2425 留下了很多实现者的解释空间。RFC 2425 表示“基于 ISO 8601 标准的定义子集”,但没有定义实际的子集。RFC 6350 在可能的情况下涉及到 ISO 8601:2000 和 8601:2004,从而减少了模糊性的可能性。 - chansen

0
在某些应用领域,双破折号被用作分隔符,而不是斜杠。(类似 2000--2002 的表示法被先前版本的标准推广使用。)
ISO 8601 标准未指定日期或时间(或日期和时间)指定是指向时间段还是指向单一时间点。特别地,日期指定可以用来指代完整的24小时天或其中特定时刻,可能默认为一天的开始(00:00)。类似地,时间表示法如9:00可以绝对指代九点整或从09:00到09:01的时间段或其他任何时间段。必要时,可以给出具体协议或口头指示其含义,或者使用 ISO 8601 中最明确的符号。例如,可以写成09:00:00或09:00:00/09:01:00以区分上述两种解释。 来源 同时建议您阅读以下内容:

标准日期和时间格式字符串


我非常确定连字符意味着省略的组件,而不是时间周期。 - IT Hit WebDAV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接