能否使用ISO 8601标准表示开放式时间区间?
ISO 8601 开放式日期范围的表示方法
好问题!ISO 8601 确实支持表示像“1970年之前”或“1900年之后”这类开放式的时间范围,它通过占位符省略起始或结束时间的方式来实现,具体规则如下:
1. 表示“某个时间点之前”的开放式范围
如果是没有明确起始点、只限定结束时间的范围(比如“1970年之前”),可以使用 ../<结束时间> 的格式:
- 示例1:
../1970代表1970年1月1日00:00之前的所有时间 - 示例2:
../1970-05代表1970年5月1日00:00之前的所有时间 - 示例3:
../1970-05-15代表1970年5月15日00:00之前的所有时间
2. 表示“某个时间点之后”的开放式范围
如果是没有明确结束点、只限定起始时间的范围(比如“1900年之后”),可以使用 <起始时间>/.. 的格式:
- 示例1:
1900/..代表1900年1月1日00:00及之后的所有时间 - 示例2:
1900-03/..代表1900年3月1日00:00及之后的所有时间 - 示例3:
1900-03-20T14:30/..代表1900年3月20日14:30及之后的所有时间
补充说明
这种开放式的时间区间属于ISO 8601标准中定义的“不完全时间区间”,专门用于处理没有明确起始或结束边界的场景。需要注意的是,不同的系统对这种格式的支持程度可能略有差异,但从标准本身来说,这是合规的写法。
内容的提问来源于stack exchange,提问作者danvk




