你如何在iso8601中永远代表(无限的未来)?

时间:2012-07-10 07:07:54

标签: date iso8601

API定义日期应作为iso8601发送,但我们要求将“永远”作为日期发送,标准似乎不包括此内容。谁能提出比9999年12月31日更好的解决方案?是否有更合适的不同标准?

1 个答案:

答案 0 :(得分:2)

引用ISO 8601:2004(E):

  

3.5扩展   通过信息交换中的合作伙伴的共同协议,允许扩展组件   识别日历年,否则限制为四位数。这样可以参考日期和   在完整表示支持的范围之外的日历年中,即在开始之前的时间   年[0000]或年末[9999]。

相关的部分也可能是 3.7相互协议,基本上说只要您不干涉ISO 8601中定义的陈述,您就可以自由定义自己的陈述。所以9999- 12-32或9999-13-00可以就您提议的forever值达成共识。

关于什么是常见做法,我认为这取决于。

我尽可能去找3.7。但是在整个设置中评估你的角色很重要。例如。如果您为了方便或将来的兼容性而在自己的组件集中使用第三方API,则应该没有任何问题。如果你是一个更大的系统的一部分,你必须说服数十个其他系统方/组件/模块/等。我说这不值得麻烦。

检查遗留代码也非常重要。并至少草拟一个关于如何进行迁移的计划,以防它破坏了无法置信的设置。这可以是将API“扩展”记录到实际发送补丁到遗留代码维护者的任何内容。