近期在处理一个日期字段时,代码中指定的日期格式写的是“YYYY-MM-DD”,一开始我也还没意识到全大写会导致生成的日期不对,直到BUG产生才追寻起这个细节……
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");//产生BUG的写法
时间字母含义一览:
Java中YYYY与yyyy含义比较:
YYYY是week-based-year,表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。所以2019年12月31日那天在这种表述方式下就已经 2020 年了。而当使用yyyy的时候,就还是 2019 年。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//正确写法
Date和Timestamp相互转换
Date转Timestamp
Timestamp createTime = new Timestamp(new Date().getTime());
Timestamp转Date
Timestamp t = new Timestamp(System.currentTimeMillis());
Date d = new Date(t.getTime());