Java:将日期字符串“150520”格式化为“2015年5月20日”

时间:2017-05-10 20:38:15

标签: java

我在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可消除此错误。如何格式化为可读日期?

3 个答案:

答案 0 :(得分:5)

你想要yyMMdd。大写D解析"年中的一天"不是"一天中的某一天"。

打印部件的[编辑],您可以DateTimeFormatter.ofPattern("MMM dd, yyyy").format(theDate)

答案 1 :(得分:2)

更改

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMDD",Locale.ENGLISH);

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMdd",Locale.ENGLISH);

答案 2 :(得分:2)

您需要使用此格式字符串"yyMMdd"。根据{{​​3}}

Symbol  Meaning                     Presentation      Examples
------  -------                     ------------      -------
D       day-of-year                 number            189
d       day-of-month                number            10