记录下最近最火的JAVA格式化时间用了YYYY-MM-dd问题

/ 2评 / 0

最近很多人说格式化时间用到了"YYYY-MM-dd"基本上都给测试提了BUG

下面就记录一下吧:

JDK测试版本为1.8

public static void main(String[] args) {
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date newDate1 = format.parse("2019-12-31 23:59:59");
            System.out.println(newDate1);

            SimpleDateFormat format2 = new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");
            Date newDate2 = format2.parse("2019-12-31 23:59:59");
            System.out.println(newDate2);

            SimpleDateFormat format3 = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");
            Date newDate3 = format3.parse("2020-01-01 23:59:59");
            System.out.println(newDate3);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

执行结果:

Tue Dec 31 23:59:59 CST 2019
Sun Dec 30 23:59:59 CST 2018
Sun Dec 29 23:59:59 CST 2019

 

从上述可以看出来使用"YYYY-MM-DD"格式化时间出现了错误!

问题原因出在哪里?

YYYY 是 week-based-year,现在就已经 2020 年了,yyyy 还是 2019 年!

YYYY 表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。

所以最后开发中还是用yyyy-MM-dd来做日期格式化,其它的就不要用了!呜呜~~~


2条回应:“记录下最近最火的JAVA格式化时间用了YYYY-MM-dd问题”

  1. 广州技校说道:

    网站内容还是挺不错的,谢谢博主。还有博客应该是WORDPRESS做的吧,感觉美观度还可以提高,谢谢。我自已是搞前端设计的,你的代码可以做精简一点。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注