我在Linux上使用Java 8,代码如下
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMDD",Locale.ENGLISH);
LocalDate exampleDate = LocalDate.parse(myDate, formatter);
其中myDate
是等于"150520"的字符串。我收到错误:
java.time.format.DateTimeParseException: Text '150520' could not
be parsed: Conflict found: Field MonthOfYear 1 differs from
MonthOfYear 5 derived from 2015-01-20
例如,我想返回May 20, 2015
。知道出了什么问题吗?
更新
将日期代码D
替换为d
可消除此错误。如何格式化为可读日期?
你想要yyMMdd
.大写D
解析"一年中的某一天"而不是"月中的某一天"。
[编辑]对于打印部分,您可以执行DateTimeFormatter.ofPattern("MMM dd, yyyy").format(theDate)
。
更改
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMDD",Locale.ENGLISH);
跟
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMdd",Locale.ENGLISH);
使用此格式字符串"yyMMdd"
。根据文档
Symbol Meaning Presentation Examples
------ ------- ------------ -------
D day-of-year number 189
d day-of-month number 10