【问题标题】:How to parse "December 15, 2009" into a Date using Java8 Date API? [duplicate]如何使用 Java8 日期 API 将“2009 年 12 月 15 日”解析为日期? [复制]
【发布时间】:2017-02-01 15:01:33
【问题描述】:

以下代码不起作用:

DateTimeFormatter.ofPattern("L dd, yyyy", Locale.US).parse("December 15, 2009");

当它抛出时

java.time.format.DateTimeParseException: Text 'December 15, 2009' could not be parsed at index 0

如何让它发挥作用?甚至可以使用提供的Locale?? (不使用将 String 映射到月份编号的附加 Map。

【问题讨论】:

    标签: java-8 java-time


    【解决方案1】:

    使用MMMM 而不是L

    DateTimeFormatter.ofPattern("MMMM dd, yyyy", Locale.US).parse("December 15, 2009")
    

    我发现那里的 javadoc 有点混乱。我还将这个标记为与DateTimeFormatter month pattern letter "L" fails 重复,因为它主要处理相同的问题。

    【讨论】:

    • 奇怪的是它失败了,因为根据DateTimeFormatterBuilder 消息来源,ML 都表示相同的ChronoField.MONTH_OF_YEAR
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多