用户登录
用户注册

分享至

SimpleDateFormat 日期格式化到2021年问题

  • 作者: ADAMSIR
  • 来源: 51数据库
  • 2021-10-30

从昨天开始就有业务同事反馈说日期生成的时候都跑到2021年了,我就先把把数据库中的日期都给改到了2020年,然后赶快看了下代码,因为之前都测试过,没啥问题,又仔细看了一遍,也没看出啥问题。然后就跟业务说了,再有业务了你跟我说下,我来试试看有问题没,然后第二天又收到了此信息

想起早上看 程序猿DD 公众号中的发的文章

然后就赶快查了一下我自己的代码 ,果然中招了😂

然后就本地建了个测试类,试了一下
为保证统一,我本地用的日期工具类是

     <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.2</version>
        </dependency>

代码如下:

import org.joda.time.DateTime;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期序列化验证
 */
public class DateSerializationTest {

    static SimpleDateFormat DF1 = new SimpleDateFormat("YYYY-MM-dd");
    static SimpleDateFormat DF2 = new SimpleDateFormat("yyyy-MM-dd");

    public static void main(String[] args) {

        String date1 = DF1.format(new Date());
        System.out.println(date1);
        System.out.println(DateTime.parse(date1).toDate());
        System.out.println("====================================================");
        String date2 = DF2.format(new Date());
        System.out.println(date2);
        System.out.println(DateTime.parse(date2).toDate());



    }


}

结果如下:

总结:出现此类问题就是日常代码规范问题导致的
所以我就给自己的idea装了一个alibaba的代码校验工具

使用方法很简单 右键选择 代码规约扫描

软件
前端设计
程序设计
Java相关