SimpleDateFormat 日期格式化到2021年问题
程序员文章站
2022-03-19 20:01:51
从昨天开始就有业务同事反馈说日期生成的时候都跑到2021年了,我就先把把数据库中的日期都给改到了2020年,然后赶快看了下代码,因为之前都测试过,没啥问题,又仔细看了一遍,也没看出啥问题。然后就跟业务说了,再有业务了你跟我说下,我来试试看有问题没,然后第二天又收到了此信息想起早上看 程序猿DD 公众号中的发的文章然后就赶快查了一下我自己的代码 ,果然中招了????然后就本地建了个测试类,试了一下为保证统一,我本地用的日期工具类是 ...
从昨天开始就有业务同事反馈说日期生成的时候都跑到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的代码校验工具
使用方法很简单 右键选择 代码规约扫描
本文地址:https://blog.csdn.net/G_whang/article/details/111981050