有没有一个好的Java日期解析器?

2022-09-01 21:55:02

有没有人知道不同语言/区域设置的良好日期解析器。Java的内置解析器(SimpleDateFormat)非常严格。它应该使用当前日期完成缺失的部分。

例如

  • 如果我没有输入年份(只有日和月),则应使用当前年份。
  • 如果年份为 08,则不应解析 0008,因为当前年份模式有 4 位数字。

编辑:我想解析来自用户的输入。例如,如果用户的区域设置日期格式为“dd.mm.yyyy”,而用户仅键入“12.11”。则分析器应接受此日期为有效日期,值为“12.11.2008”。目标是良好的可用性。


答案 1

检查Joda Time及其Freaky Formatters

Java 8包含JSR-310,因此这也可以成为一种解决方案。


答案 2

43642 开始,尽管不一定是重复的:

请参阅Apache Commons的DateUtils。有一种方法可以采用您的多个模式来尝试并吐出一个实例。parseDateStringDate