时间格式引发的事故
- 背景
- 实战演示
- 结论
背景
前不久写了一个删除数据接口,条件是根据时间删除时间后面的数据。入参是 时间字符串。后台的时间格式 是 yyyyMMdd。然后当时前端传参数的时候,随意的传了2023-07-31的时间,然后将该表的数据全部删除了。
实战演示
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个多月的数据了。
结论
代码需要经过充分的测试,不能大意。