文章目录
问题描述灾难现场还原原因分析说明各字段的含义何为”前导0”参考
问题描述
使用new SimpleDateFormat(“yyyy-MM-DD HH:mm:ss”).parse(“2019-05-27 22:47:31”);构造出来的时间与预期的不符。
灾难现场还原
Date startDate = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss").parse("2019-05-27 22:47:31");
打印出来的结果却是2019-01-27 22:47:31
原因
yyyy-MM-DD应该改为yyyy-MM-dd。
分析说明各字段的含义
字段说明
yyyy或YYYY年。注意这个大小写是不同的!!!y 是Year, Y 表示的是Week year。 经过试验,得出的结果如下:Week year 意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。MM月。M大写是为了区分“月”与“分”dd日。必须小写,大写有时会出现本文上面出现的诡异bugHH或hh或H时。大小写不同!!!小写的h是12小时制,大写的H是24小时制。HH和H区别在于是否有前导0mm或者m分。mm与m的区别为是否有前导零ss或者s秒。ss和s的区别为是否有前导零
何为”前导0”
比如凌晨1点2分,HH:mm显示为01:02,H:m显示为1:2。
参考
https://blog.csdn.net/bai120552717/article/details/79375697 http://www.mamicode.com/info-detail-2055944.html