时间格式引发的事故
背景
前不久写了一个删除数据接口,条件是根据时间删除时间后面的数据。入参是 时间字符串。后台的时间格式 是 yyyyMMdd。然后当时前端传参数的时候,随意的传了2023-07-31的时间,然后将该表的数据全部删除了。
实战演示
java
public static void main(String[] args) throws ParseException {
/**接口参数*/
String paramTime="2023-07-31";
/**后台解析格式*/
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyyMMdd");
Date date=simpleDateFormat.parse(paramTime);
String resultTime =simpleDateFormat.format(date);
System.out.printf("date is "+resultTime);
}
开始入参是2023-07-31,经过解析后,时间变成了 2022 -12-07 了。这样就多删除了7个多月的数据了。
结论
代码需要经过充分的测试,不能大意。