是否有任何表示日期范围的标准?
Posted
技术标签:
【中文标题】是否有任何表示日期范围的标准?【英文标题】:Is there any kind of standard for representing date ranges? 【发布时间】:2013-12-23 05:03:27 【问题描述】:ISO 8601 将日期表示为YYYY-MM-DD
。
它似乎没有就如何表示日期范围提供任何建议,例如:
2013-01-01 => 2013-06-31
ISO 8601 或其他标准是否为表示日期范围提供了合理的建议?
背景:这将用作DateRange
对象的toString()
方法的输出,然后可以使用parse()
方法解析输出。
【问题讨论】:
【参考方案1】:ISO 8601 确实有一个表示日期范围的标准。要使用这种格式表示开始和结束日期,您可以编写:
2013-01-01/2013-06-31
注意正斜杠如何用作间隔指示符来分隔开始日期和结束日期。
更多信息请参见here。
【讨论】:
如果日期的前导部分相同,可以在结束日期省略。所以在这个例子中年份是一样的,可以写成2013-01-01/06-31
。【参考方案2】:
只是为了补充上面 Ben Smith 的回答,该标准还提到在某些情况下使用双连字符 (--
) 作为 间隔指示符,而不是正斜杠 (/
) .例如,在某些操作系统(例如 Windows)中禁止使用正斜杠的文件或目录名称中。
所以上面的例子是
2013-01-01--2013-06-31
或
2013-01-01--06-31
缩写形式
【讨论】:
缩写形式实际上是有效的 ISO8601 吗?--06-31
是一个有效的日期,但如果我们使用 --
作为指示符,那么这里的日期写成 06-31
这似乎是无效的。
@Jezor Ben Smith 的答案 (en.wikipedia.org/wiki/ISO_8601#Time_intervals) 中的链接似乎是这样说的:“对于 以上是关于是否有任何表示日期范围的标准?的主要内容,如果未能解决你的问题,请参考以下文章