最近有一个功能是对输入的日期格式化,设计给出的范例是 YYYY-MM-dd HH:mm:ss,于是我简单验证了一下是可以的,然后就这么在手册里写了。然后偶然发现有地方也用yyyy啊,这个到底有神马区别啊,还是随便用呢。看了下jdk,这么说的:
也就是说Y表示的是Week year,可是,这个Week year又是什么。。jdk文档贴心地给出了Examples,然而并没有什么卵用。。
经过试验,得出的结果如下:Week year意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
如2019.1.1,日历长成这样:
1.1 所在的周的最后一天是2011.1.5,这天属于2019,所以2019.1.1的Week year就是2019,用YYYY做格式化,就会得到2019.1.1。
试验代码,取八天前的日期
public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str1=sdf.format(new Date(new Date().getTime() ));
String str2=sdf.format(new Date(new Date().getTime() - (86400000 * 8)));
System.out.println(str1);
System.out.println(str2);
print("---------我是分割线-------------");
SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");
str1=sdf2.format(new Date(new Date().getTime() ));
str2=sdf2.format(new Date(new Date().getTime() - (86400000 * 8)));
System.out.println(str1);
System.out.println(str2);
}
}
运行结果:
结论:仅仅是想格式化我们普通人认识的日期,用"yyyy-MM-dd HH:mm:ss" 就够了。YYYY什么的,没事就不要用了啊。
---------------------
原文:https://blog.csdn.net/bewilderment/article/details/48391717