如何使用Java8 Date API将“2009年12月15日”解析为日期?

时间:2017-02-01 15:01:33

标签: java-8 java-time

以下代码不起作用:

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映射到月份编号的其他地图。

1 个答案:

答案 0 :(得分:4)

使用MMMM代替L

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

我发现那里的javadoc有点令人困惑。我还将此标记为DateTimeFormatter month pattern letter "L" fails的副本,因为它主要涉及相同的问题。