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

以上是在Java中格式化LocalDate:“2020年3月26日”的模式是什么的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>