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吧!!!!!!!

相关文章
|
存储 消息中间件 NoSQL
延时消息常见实现方案
延时消息常见实现方案
延时消息常见实现方案
|
开发框架 小程序 JavaScript
高颜值微信小程序 UI 组件库!
高颜值微信小程序 UI 组件库!
676 1
|
NoSQL Java Redis
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
1108 0
别再踩坑, yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?
|
资源调度 前端开发 JavaScript
ACEeditor使用手册(一)
ACEeditor使用手册(一)
819 1
|
JavaScript
MAC升级nodejs和npm到最新版
第一步,先查看本机node.js版本: node -v 第二步,清除node.js的cache: sudo npm cache clean -f 第三步,安装 n 工具,这个工具是专门用来管理node.
5316 0
|
自然语言处理 JavaScript 前端开发
万字长文详解Java lambda表达式
详细介绍java lambda的各种使用方式以及lambda的实行原理和序列化原理
51929 9
万字长文详解Java lambda表达式
|
存储 消息中间件 缓存
本地缓存之王,Caffeine保姆级教程
本地缓存之王,Caffeine保姆级教程
|
Ubuntu NoSQL Linux
查看linux操作系统版本:Ubuntu?Centos?还是其他?
查看linux操作系统版本:Ubuntu?Centos?还是其他?
26019 2
查看linux操作系统版本:Ubuntu?Centos?还是其他?
|
Java Maven
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)
Mac安装Maven(图文解说详细版)
|
XML 数据格式
xml和map互转工具类
/** * xml转map工具类 * @author zhangyao * */ public class XmlToMapUtil { /** * xml转map 不带属性 * @param xmlStr ...
3444 0