当前位置:  开发笔记 > 编程语言 > 正文

是否有一个很好的Java日期解析器?

如何解决《是否有一个很好的Java日期解析器?》经验,为你挑选了3个好方法。

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

例如

如果我不输入年份(仅限日期和月份),则应使用当前年份.

如果年份是08那么它不应该解析0008因为当前年份模式有4位数.

编辑:我想解析用户的输入.例如,如果用户的区域设置日期格式为"dd.mm.yyyy",并且用户仅键入"12.11".那么解析器应该接受它作为值为"12.11.2008"的有效日期.目标是良好的可用性.



1> Petteri Hiet..:

检查Joda Time及其Freaky Formatters.

Java 8包含JSR-310,因此也可以作为解决方案.


那么,回答这个问题的代码将如何使用Joda Time?

2> Joe Liversed..:

从43642开始,虽然不一定重复:

请参阅Apache Commons的DateUtils.有一种parseDate方法可以让您String和多个模式尝试并吐出一个Date实例.


为apache Commons +1!这些图书馆经常被忽视或被低估,许多程序员真的不知道它们包含什么.

3> Jon Skeet..:

(为清晰起见而编辑.)

就个人而言,我认为严格是好的.因此,许多不同的情况需要围绕宽松解析的不同规则,所以不可能真正地将它整合到一个公共库中.

但是,我彻底推荐Joda Time而不是内置的日期/时间类.他们的格式化程序和解析器是线程安全的和不可变的,这也有帮助.Joda Time对轻松解析提供了一些支持,如另一个答案中所示,但您应该自己必须提供一些规则.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有