【问题标题】:Parse a two-digit year as 1900s rather than 2000s in java.time? [duplicate]在 java.time 中将两位数的年份解析为 1900 年代而不是 2000 年代? [复制]
【发布时间】: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”。

是的,我知道,使用两位数的年份值是愚蠢的。但是数据不在我的控制之下。

【问题讨论】:

标签: java parsing java-time


【解决方案1】:

只需使用 API 获取 2000-2099 范围内的值,然后使用一些条件来完成其余的工作。不必担心尝试更改 API 本身。

【讨论】:

  • 实际上,java.time 确实支持覆盖这个 2000 年代的假设。您可以轻松设置自己的支点年份。见this Answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 2018-06-17
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
相关资源
最近更新 更多