是否有任何表示日期范围的标准?

Ben*_*min 16 standards naming date iso8601 date-range

ISO 8601代表日期YYYY-MM-DD.

它似乎没有提供任何关于如何表示日期范围的建议,例如:

2013-01-01 => 2013-06-31
Run Code Online (Sandbox Code Playgroud)

ISO 8601或其他标准是否为表示日期范围提供了明智的建议?

背景:这将被用作对象toString()方法的DateRange输出,然后可以使用parse()方法解析输出.

Ben*_*ith 16

ISO 8601确实有表示日期范围的标准.要使用此格式表示开始日期和结束日期,您可以编写:

"2013-01-01/2013年6月31日"

请注意正斜杠如何用作间隔指示符来分隔开始日期和结束日期.

有关更多信息,请参见此处

  • 如果日期的开头部分相同,则可以在结束日期中将其省略。因此,在此示例中,年份是相同的,可以将其写为“ 2013-01-01 / 06-31”。 (2认同)

Tim*_*Tim 8

只是为了补充本·史密斯(Ben Smith)的答案,该标准还提到在某些情况下使用双连字符(--)作为间隔指示符,而不是正斜杠(/)。例如,在大多数操作系统中,在文件名或目录名中均禁止使用正斜杠。

所以上面的例子是

2013-01-01--2013-06-31

要么

2013-01-01--06-31

缩写形式

  • @Jezor Ben Smith的答案(https://en.wikipedia.org/wiki/ISO_8601#Time_intervals)中的链接似乎是这样说的:“对于 <start>/<end> 表达式,如果最终值中缺少任何元素,假定它们与包含时区的起始值相同。” 因此,它本身不是有效的日期,但作为日期范围的结束是有效的。 (2认同)