yyyy-MM-dd HH:mm:ss和YYYY-MM-dd HH:mm:ss踩坑之路

突然不经意的一瞥,发现了一个问题:今天明明才2020年刚开始,可是为什么有2020年12月31号的单号产生了。心中一种莫名的僵硬,要出事了。出现这种情况,首先怀疑的是时间格式化问题。发现了YYYY这个东西。

赶紧写段代码验证一下,是不是YYYY的问题。

Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.NOVEMBER, 30);
try {
    Date date = calendar.getTime();
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(format1.format(date));

    SimpleDateFormat format2 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
    System.out.println(format2.format(date));
} catch (Exception e) {
    e.printStackTrace();
}

// 结果:

// 2019-11-30 16:01:05
// 2019-11-30 16:01:05

通过上面代码发现没问题啊。既然有这种写法,说明yyyy和YYYY肯定是有区别的。果不其然,找到了原因

y:正常的年

Y:如果本周跨年,那么这一周就算入下一年

修改一下代码:

Calendar calendar = Calendar.getInstance();
calendar.set(2019, Calendar.DECEMBER, 30);
try {
    Date date = calendar.getTime();
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(format1.format(date));

    SimpleDateFormat format2 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
    System.out.println(format2.format(date));
} catch (Exception e) {
    e.printStackTrace();
}

// 结果:

// 2019-12-30 16:10:54
// 2020-12-30 16:10:54

验证了结果

发布了39 篇原创文章 · 获赞 33 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/love1793912554/article/details/103991122