我需要一种方法来序列化和反序列化那些可能追溯到过去的日期,比如-10000
。
首先我看了ISO8601,但它似乎不支持超过四位数的年份。(或者至少,我尝试过的Python库不支持。)
我能想到的不同解决方案:
- 在序列化/反序列化之前更改年份,将其提供给解析/格式化库,然后再修复回去(听起来像是hacky的做法)
- 定义自己的格式,例如
year:month:day:hour:minute:second
(这是重新发明轮子,因为我还要处理时区等问题) - 使用一个没有边界限制的UNIX时间戳或类似的东西(在某些编程语言中可能会溢出,而且仍旧有时区问题)
- 在
-9999
(或0
)之前存储日期与之后不同,因为那时还没有时区问题/闰年问题/...问题。(同一位置有两种不同的格式)
您是否知道其他更好的方法?或推荐其中的一种?