以下代码(在main中)
LocalDate d ;
DateTimeFormatter formatter;
d = LocalDate.of(2021, 11, 14);
System.out.println(d);
formatter = DateTimeFormatter.ofPattern("MM.dd.YYYY");
System.out.println(formatter.format(d));
formatter = DateTimeFormatter.ofPattern("YYYY/MM/dd");
System.out.println(formatter.format(d)+ "\n");
d = LocalDate.of(2021, 1, 1);
System.out.println(d);
formatter = DateTimeFormatter.ofPattern("MM.dd.YYYY");
System.out.println(formatter.format(d));
formatter = DateTimeFormatter.ofPattern("YYYY/MM/dd");
System.out.println(formatter.format(d));
使用最新或相当新的 Oracle Java 17 在我的 Netbeans 12.5 中输出
run:
2021-11-14
14.11.2021
2021/11/14
2021-01-01
01.01.2020
2020/01/01
BUILD SUCCESSFUL (total time: 0 seconds)
今天 14-NOV-2021 的格式化输出没问题,但 01-JAN-2021 的输出是错误的。格式化输出打印 2020 ,一年后。
你能重复一下吗?如果是这样:有什么想法为什么会发生这种情况吗?
最佳答案
根据java.time.format.DateTimeFormatter
的Javadoc
- y(小写)代表年代和
- Y(大写)代表基于周的年份。
基于周的日期/时间系统在 ISO 8601 中定义(请参阅:Wikipedia article)。
关于Java DateTimeFormatter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69962382/