最近有格式化输入日期的功能。 设计中所示的示例为YYYY-MM-dd HH:mm:ss,因此我们简单地进行了验证。 然后,就这样写在了手册上。 然后偶然发现了有些地方使用yyyy呢。 这到底有神马不同呢? 还是随便用呢? 看着jdk,他说:
也就是说,y表示Week year,这个Week year是什么? jdk文档亲切地展示了Examples,但很少使用鸡蛋。
实验结果得到了以下结果。 Week year是指当天的周所属的一年,周从星期天开始,到星期六结束。 本周过了年,本周进入下一年,比如2010.12.26,日历也会是这样。
12.26某一周的最后一天是2011.1.1,因为这一天属于2011,所以2010.12.26的Week year是2011,用YYYY格式化可以得到2011.12.26。
试验代码:
publicstaticvoidmain (字符串[ ] args ) calendar calendar=calendar.getinstance ); //2014-12-26calendar.set(2010,Calendar.DECEMBER,26 ); Date strDate1=calendar.getTime (; simpledateformatf1=newsimpledateformat (yyyy-mm-DD ); system.out.println (resultforyyyy 3360 ) F1.format ) strdate1); simpledateformatf2=newsimpledateformat (yyyy-mm-DD ); system.out.println (resultforyyyy 3360 ) F2.format ) strdate1); }
执行结果:
Result for YYYY: 2011-12-26
Result for yyyy: 2010-12-26
此结果是JDK 1.7版的实验结果,其馀版本将产生什么结果尚不清楚。
Java版本'1.7.0_ 75 ' Java (TM ) seruntimeenvironment ) build1.7.0_75-B13 ) Java hotspot (TM ) 64-bits eronmer
一些报道说,本周四是那一年,这周是哪一年,但试一试就不是了。 2010.12.26周四是2010年,但结果还是2011年,所以原则上应该是过了年就到下一年了。
总之,我只是想格式化我们合适的白云识别的日期,'yyyy-MM-dd HH:mm:ss'就足够了。 什么yyy,没事就别用啊。