7

API 定义日期应作为 iso8601 发送,但我们要求将“永远”作为日期发送,而标准似乎并未涵盖这一点。谁能提出比 9999 年 12 月 31 日更好的解决方案?有没有更合适的标准?

4

1 回答 1

4

引用 ISO 8601:2004(E):

3.5 扩展 经信息交换合作伙伴双方同意,允许扩展标识日历年的组件,否则限制为四位数。这使得能够在完整表示支持的范围之外引用日历年中的日期和时间,即在年初[0000] 之前或年底[9999] 之后。

同样相关的可能是第3.7 节相互协议,它基本上说您可以自由定义自己的表示,只要您不干扰 ISO 8601 中定义的表示。所以 9999-12-32 或 9999-13-00 可以双方就您的提议forever价值达成一致。

至于什么是常见的做法,我会说这取决于。

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

检查遗留代码也非常重要。并且至少草拟一个关于如何进行迁移的计划,以防万一它破坏了令人难以置信的设置。这可能是任何东西,从记录您的 API“扩展”到实际向遗留代码维护者发送补丁。

于 2012-07-10T07:59:31.623 回答