内置于Java 8中的java.time框架以及以后的版本将两位数的年份字符串解析为2000年代的年份。于是90变成了2090。
来自java.time.DateTimeFormatter类文档:
如果字母数为两个…将使用2000的基值进行解析,导致包含在2000到2099范围内的一年。
我有一些数据,比如90之类的值意味着1990。
如何将解析两位数的年份字符串的枢轴年改为1900而不是2000?
更好的是,我如何设置任意的枢轴年,因为我知道一些数据源有部分世纪的规则。例如,“如果在80下,假设2000年代,否则假设1900年代”。
是的,我知道,用两位数的年份值是愚蠢的。但这些数据不在我的控制范围之内。
发布于 2016-02-07 21:12:34
只需使用API在2000-2099范围内获得一个值,并使用一些条件来完成其余的工作。不要担心试图更改API本身。
https://stackoverflow.com/questions/35259119
复制相似问题