java - DateTimeFormatter 在解析个位数部分时过于严格

标签 java parsing java-8 datetime-format

我有一个格式 MM/dd/yyyy,所以所有格式都以个位数为前导零。问题是在解析时我希望能够同时解析 "11/25/2018""5/25/2018",但格式应始终返回前导零。

我试过使用不同的 ResolverStyle 选项,但没有成功。

构建我自己的特定格式似乎不合理,当你认为它是使用 SimpleDateFormat 开箱即用时。

如果有任何想法,不涉及使用 FormatterBuilder 从头开始​​制作格式化程序,我们将不胜感激

最佳答案

使用两种不同的格式,M/d/yyyy 用于解析,MM/dd/yyyy 用于打印。前者将接受一位数和两位数的月份和日期,而后者将始终打印两位数,必要时使用前导零。

SimpleDateFormat parseFormat = new SimpleDateFormat("M/d/yyyy");
SimpleDateFormat printFormat = new SimpleDateFormat("MM/dd/yyyy");

Date date1 = parseFormat.parse("4/5/2010");
Date date2 = parseFormat.parse("04/05/2010");
String output1 = printFormat.format(date1);
String output2 = printFormat.format(date2);
// output1 and output2 will be the same

关于java - DateTimeFormatter 在解析个位数部分时过于严格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50579613/

相关文章:

java - 如何在java中创建帮助系统

c# - 为什么 decimal.Parse(10 10) 有效?

lambda - 多 map 的Java可选用法

Java 8 相当于 (RxJava) Observable#onComplete()

java - Eclipse 生成 equals 方法 : if ( obj == null ) vs. if ( null == obj )

java - Bintray Gradle 插件 - POM 不完整,不会同步到 Maven Central?

java - ElementNSImpl 类型的对象以 com.sun.org.apache.xerces.internal.dom.ElementNSImpl 的形式出现

ios - 在 IOS 中解析 Json 响应时出现 valueNotFound 错误

java - Eclipse JDT Java Parser 中是否有任何类型的 "line visitor"?如果没有,有人知道一个好的解决方法吗?

java - Java中对象的聚合列表