从字符串解析为LocalDateTime格式的正确模式

时间:2019-05-18 08:25:07

标签: java datetime

我正在尝试以LocalDateTime格式解析“ 2019年3月1日”或“ 2019年3月15日”格式的日期,但是我正在努力寻找正确的格式。

我已经尝试过使用“ dd M / L yyyy”和简单的“ d M / L yyyy”模式的示例,但似乎没有任何作用。

String begda = "1 March 2019";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd M/L yyyy");
LocalDateTime ldtBeg = LocalDateTime.parse(begda, formatter);

它只会抛出DateTimeParseException,说明无法解析。

3 个答案:

答案 0 :(得分:5)

使用MMMM作为March之类的完整月份。并将d用于1之类的日子。

它应该像d MMMM yyyy

并指定用于阅读月份名称的人类语言的Locale

LocalDate.parse( 
    "1 March 2019" , 
    DateTimeFormatter.ofPattern( 
        "d MMMM yyyy",
        Locale.UK
    )
)

答案 1 :(得分:0)

您要转换字符串月份MARCH。因此,在解析时,您需要提及它是哪个语言环境。

在格式化此语言环境时,将使用该语言环境并返回相应的月份。

如果您熟悉Calendar,那么也可以使用它。 我想这个链接可以给您一些提示

Convert Month String to Integer in Java

答案 2 :(得分:-1)

那是因为你做错了

java的正确日期格式为("dd MMMM yyyy")

有关更多信息,请访问this网站