This question already has answers here:
Why does Java's java.time.format.DateTimeFormatter#format(LocalDateTime) add a year?
(1 个回答)
Using DateTimeFormatter on january first cause an invalid year value
(1 个回答)
1年前关闭。
我正在尝试将
然而,令我惊讶的是,这会返回一个输出:
而不是预期的
(1 个回答)
Using DateTimeFormatter on january first cause an invalid year value
(1 个回答)
1年前关闭。
我正在尝试将
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));
然而,令我惊讶的是,这会返回一个输出:
30-12-2020
而不是预期的
30-12-2019
。如果日期设置为 2019-11-30
,它会正确返回 30-11-2019
。我正在做一些非常错误的事情,但我无法弄清楚到底是什么。有人可以帮忙吗? 最佳答案
来自 DateTimeFormatter
documentation: ,表示符号、含义和例子:
因此,您正在格式化基于周的年份,而不是常规年份。 2019 年 12 月 30 日属于 2020 年的第一周,因此您的输出。
使用 yyyy
(year-of-era) 或 uuuu
(year) 而不是 YYYY
,你会得到 2019 。
基本上,YYYY
通常应该与 w
(基于周的年)和 E
(星期几)一起使用。
关于java - DateTimeFormatter 在格式化后添加年份到日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59343748/
10-13 09:11