yyyy-MM-dd和YYYY-MM-dd不是一样的吗?

简介: 最近的一个项目中遇到了一个非常有趣的bug,原来yyyy-MM-dd和YYYY-MM-dd是有差异的,具体有什么不同呢?

例子:

publicclassDateTest {
publicstaticvoidmain(String[] args) {
Calendarcalendar=Calendar.getInstance();
calendar.set(2019, Calendar.AUGUST, 31);
DatestrDate=calendar.getTime();
DateFormatformatUpperCase=newSimpleDateFormat("yyyy-MM-dd");
System.out.println("2019-08-31 to yyyy-MM-dd: "+formatUpperCase.format(strDate));
formatUpperCase=newSimpleDateFormat("YYYY-MM-dd");
System.out.println("2019-08-31 to YYYY/MM/dd: "+formatUpperCase.format(strDate));
  }
}

运行结果为:

2019-8-31toyyyy-MM-dd: 2019-8-312019-8-31toYYYY/MM/dd: 2019-8-31

如果改成12月呢?结果是:

2019-12-31toyyyy-MM-dd: 2019-12-312019-12-31toYYYY-MM-dd: 2020-12-31


那么产生这个问题的原因是什么呢?其实很简单:Y 和 y 实际上代表了不同的含义。


  • y:year-of-era;正正经经的年;
  • Y:week-based-year;只要本周跨年,那么这周就算入下一年;


所以,开发同学还是正正经经用yyyy吧!!!!!!!

相关文章
|
9月前
2021-10-10T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
2021-10-10T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
132 0
|
3月前
yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
【5月更文挑战第7天】yyyy-MM-dd'T'HH:mm:ss.SSSZZ和yyyy-MM-dd'T'HH:mm:ss.SSSXXX之间的区别
73 0
|
3月前
|
前端开发 Java
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换
68 0
|
3月前
|
JSON 数据格式
Cannot parse date while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSSZ‘
Cannot parse date while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSSZ‘
446 0
|
JavaScript 前端开发
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
185 0
|
JavaScript 前端开发 数据库
如何将当前时间为:Sun Jan 08 16:47:00 CST 2023格式转换成“yyyy-MM-dd HH:mm:ss“
如何将当前时间为:Sun Jan 08 16:47:00 CST 2023格式转换成“yyyy-MM-dd HH:mm:ss“
167 0
|
NoSQL Java Redis
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
332 0
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
|
Java
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
Java时间格式转换yyyyMMddHHmmss--yyyy-MM-dd HH:mm:ss
199 0
|
Java
LocalDateTime序列化成yyyy-MM-dd HH:mm
LocalDateTime序列化成yyyy-MM-dd HH:mm
199 0
T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
T16:00:00.000Z: expected format yyyy-MM-dd HH:mm:ss 时间戳格式化
1213 0