前一阵子,我们项目中遇到了一个 bug,时间格式的bug,2019-12-31那天显示成了2020-12-31,在网上一搜,也有其他人遇到了同样的 bug,这里就对这个问题记录一下。
一直以来使用 yyyy 和 YYYY 结果都一样,也就没有去研究它们之间的区别,但是这次遇到了这个 bug,所以就去研究了一下。那么产生这个 bug 的原因是什么呢?其实很简单,就是把 yyyy-MM-dd 写成了 YYYY-MM-dd 。
一、当时间是 2019-08-31 时,代码如下:
public class DateTest {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.AUGUST, 31);
Date strDate = calendar.getTime();
DateFormat formatUpperCase = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("2019-08-31 to yyyy-MM-dd: " + formatUpperCase.format(strDate));
formatUpperCase = new SimpleDateFormat("YYYY-MM-dd");
System.out.println("