在Java中格式化LocalDate:“2020年3月26日”的模式是什么
我似乎无法想出“2020 年 3 月 26 日”(无逗号)的模式。有人可以帮忙吗?我试过DateTimeFormatter.ofPattern("MMMM dd yyyy")
和DateTimeFormatter.ofPattern("MMM dd yyyy")
。任何帮助,将不胜感激!
最小可重现示例:
String strDate = "March 26 2020";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM dd uuuu");
LocalDate date = LocalDate.parse(strDate, dtf);
System.out.println(date);
在我的电脑上,这会抛出
线程“main”中的异常 java.time.format.DateTimeParseException:无法在索引 0 处解析文本“2020 年 3 月 26 日”
预期输出为
2020-03-26
2020-03-26
随着MMM
格式模式,而不是例外的是一样的。
回答
使用模式,MMMM dd uuuu
带有Locale.ENGLISH
。
演示:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
class Main {
public static void main(String[] args) {
String strDate = "March 26 2020";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM dd uuuu", Locale.ENGLISH);
LocalDate date = LocalDate.parse(strDate, dtf);
System.out.println(date);
}
}
输出:
- `Locale.ENGLISH` is a spot on!
THE END
二维码