DateTimeFormatter 在格式化后添加一个日期
DateTimeFormatter adding a year to date after formatting
我正在尝试将 2019-12-30
格式的日期转换为 30-12-2019
格式的日期,为此我考虑使用 DateTimeFormatter
并且我有以下代码:
LocalDate date = LocalDate.parse("2019-12-30");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY");
System.out.println(formatter.format(date));
然而,令我惊讶的是,这个 returns 输出:
30-12-2020
而不是预期的 30-12-2019
。如果日期设置为 2019-11-30
,则它正确 returns 30-11-2019
。我正在做一些非常错误的事情,但我无法弄清楚到底是什么。有人可以帮忙吗?
使用"dd-MM-yyyy"
代替"dd-MM-YYYY"
尝试以下代码片段以获得预期结果 -
LocalDate date = LocalDate.parse("2019-12-30");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
System.out.println("date " + formatter.format(date)); // date 30-12-2019
出自DateTimeFormatter
documentation:,说明符号、含义及例子:
Y week-based-year year 1996; 96
所以你格式化的是基于周的年份,而不是常规年份。 2019 年 12 月 30 日属于 2020 年的第一周,因此您的输出。
使用 yyyy
(年代)或 uuuu
(年份)代替 YYYY
,您将得到 2019。
基本上,YYYY
通常应与 w
(基于年份的星期几)和 E
(星期几)一起使用。
您正在使用 DateTimeFormatter.ofPattern("dd-MM-YYYY");
,请注意 Y
代表 week-based-year,您可能不需要。也许你希望你的模式是 "dd-MM-uuuu"
。有关模式的更多信息,请参阅 Oracle 官方文档:Patterns for Formatting and Parsing
我正在尝试将 2019-12-30
格式的日期转换为 30-12-2019
格式的日期,为此我考虑使用 DateTimeFormatter
并且我有以下代码:
LocalDate date = LocalDate.parse("2019-12-30");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-YYYY");
System.out.println(formatter.format(date));
然而,令我惊讶的是,这个 returns 输出:
30-12-2020
而不是预期的 30-12-2019
。如果日期设置为 2019-11-30
,则它正确 returns 30-11-2019
。我正在做一些非常错误的事情,但我无法弄清楚到底是什么。有人可以帮忙吗?
使用"dd-MM-yyyy"
代替"dd-MM-YYYY"
尝试以下代码片段以获得预期结果 -
LocalDate date = LocalDate.parse("2019-12-30");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
System.out.println("date " + formatter.format(date)); // date 30-12-2019
出自DateTimeFormatter
documentation:,说明符号、含义及例子:
Y week-based-year year 1996; 96
所以你格式化的是基于周的年份,而不是常规年份。 2019 年 12 月 30 日属于 2020 年的第一周,因此您的输出。
使用 yyyy
(年代)或 uuuu
(年份)代替 YYYY
,您将得到 2019。
基本上,YYYY
通常应与 w
(基于年份的星期几)和 E
(星期几)一起使用。
您正在使用 DateTimeFormatter.ofPattern("dd-MM-YYYY");
,请注意 Y
代表 week-based-year,您可能不需要。也许你希望你的模式是 "dd-MM-uuuu"
。有关模式的更多信息,请参阅 Oracle 官方文档:Patterns for Formatting and Parsing