ISO8601标准下如何正确表示含连字符格式的日期范围
ISO 8601 标准下日期范围的正确表示方式
ISO 8601 明确规定正斜杠 / 是时间/日期范围的专属分隔符,不存在用连字符-分隔范围的标准定义,你之前在无连字符YYYYMMDD格式下用-做范围分隔符属于民间约定,因为日期本身不含连字符所以不会产生歧义,但不符合标准规范。
标准写法
- 带连字符的扩展格式(即标准
YYYY-MM-DD格式):直接用/分隔起止日期即可,不会有任何表意冲突,例如2024年3月1日到2024年3月15日的范围写为:2024-03-01/2024-03-15 - 无连字符的基本格式
YYYYMMDD同样遵循这个规则,上述日期范围的对应写法为:20240301/20240315
常用简化规则(标准兼容)
- 起止日期重复的年、月字段可以省略,缺省部分自动复用前序日期的对应高位值:
- 同月范围:
2024-03-01/15等价于2024-03-01/2024-03-15 - 同年跨月范围:
2024-03-01/04-15等价于2024-03-01/2024-04-15
- 同月范围:
- 支持「日期+时长」的组合表示:时长用
P开头的格式标记,例如2024-03-01/P15D代表从2024年3月1日开始持续15天,和前面的完整范围写法语义完全一致。
文件名场景的兼容方案
由于绝大多数操作系统不允许/出现在文件名中,工业界通用的兼容做法是用**双连字符--**替代/作为范围分隔符,不会和日期内部的单连字符混淆,对应写法为:2024-03-01--2024-03-15
这种写法可读性高,也不会产生解析歧义,是目前技术圈在文件名里标记ISO格式日期范围的主流约定。
内容的提问来源于stack exchange,提问作者AlexRussell
相关产品推荐
相关产品推荐

