JAVA日期格式的各种坑
java的日期格式是我们在开发中Very常用,几乎到了离不开的程度。但是Javad的日期格式也为我们留下了各种坑。
坑一:YYYY和yyyy
我们开发人员平时写年月日的时候 总不清楚YYYY和yyyy的区别,经常混用。:
有这个问题,比如2019年12月31日
打印结果是:
2019-12-31的YYYY-MM-dd格式化Date后居然是2018年的12月30日?
这个暂且不论,看下一段代码,此代码借鉴了一段,稍作修改。
结果呢:
你是否心中有很多❓
1、"YYYY format" 是 "ISO week numbering system" 是按照周来计算时间,今天是12月29号周天,是2020年的第一周所以年份开始就是进入了2020年了
2、"yyyy format" 是 “Gregorian Calendar” 是按天数作为一年的计算单位
坑二:DD和dd
这个打印出来的是什么, 预期打印的应该是2020-03-01吧
结果呢?
大跌眼镜啊! 原来DD是在本年中的第几天。。。。。
其他不算坑的:
结果为
HH是24小时制,hh是12小时制。
小技巧:如何精确到微秒:
SimpleDateFormat formatter = new SimpleDateFormat("mm分ss.ss秒"); String formatDate = formatter.format(new Date()); 比如: mm分ss.ss秒 10分49.04秒 mm分ss.sss秒 10分49.049秒
最后贴一段JAVA8官方的介绍