【发布时间】:2016-02-07 21:08:24
【问题描述】:
java.time 框架内置在 Java 8 中,后来将两位数的年份字符串解析为 2000 年代。所以90 变成了2090。
来自java.time.DateTimeFormatter 类文档:
如果字母数为 2... 将使用基值 2000 进行解析,从而得出 2000 到 2099 范围内的年份。
我有数据,其中 90 等值表示 1990。
如何将解析两位数年份字符串的基准年份更改为 1900 而不是 2000?
更好的是,我如何设置任意枢轴年份,因为我知道一些数据源有部分世纪的规则。例如,“如果在80以下,假设2000s,否则假设1900s”。
是的,我知道,使用两位数的年份值是愚蠢的。但是数据不在我的控制之下。
【问题讨论】:
-
我想我会正常解析,然后如果年份> 2079,则从年份中减去100。
-
这个答案怎么样? stackoverflow.com/a/29496149/1743880(也许这个也是:stackoverflow.com/a/32783553/1743880)。
-
我一直不明白为什么人们懒得保存其他 2 位数字,但是自从 Y2K 问题 16 年过去了!!!怎么还有这样的活代码?