Java DateTimeFormatter 问题

标签 java date

以下代码(在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/

相关文章:

java - 如何根据不同的条件在主类构造函数中调用不同的对象类?

mysql - 在mysql中获取与日期对应的季度

css - 有什么方法可以仅使用 CSS 显示实时日期或时间吗?

linux shell 日期问题

java - Jframe 和 Jpanel 大小不起作用

java - 单元测试不在应用服务器中运行时应该如何设置数据源?

java - 在我通过电子邮件发送给自己后,android 中文件上的 md5 校验和与 md5 不匹配

java - Android/Java 错误 : "java.lang.IllegalStateException: The specified child already has a parent"

Javascript 日期 -> 数字与字符串

javascript - 如何在我的情况下设置日期格式