Java:将日期字符串"150520"格式化为"May 20, 2015"



我在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

相关内容

最新更新