【时间格式引发的事故】

时间格式引发的事故

背景

前不久写了一个删除数据接口,条件是根据时间删除时间后面的数据。入参是 时间字符串。后台的时间格式 是 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个多月的数据了。

结论

代码需要经过充分的测试,不能大意。

相关推荐
都叫我大帅哥9 小时前
给 Java 程序员的 CSRF 攻击详解:从原理到防御实战
java
江南十四行9 小时前
Spring框架核心(上)——IoC控制反转与DI依赖注入详解
java·后端·spring
fb_1234510 小时前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
码智社11 小时前
JSON 零基础到资深全体系教程
java·json
wgego12 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
IKUN家族12 小时前
Spring MVC(四)
java·spring·mvc
机建狂魔12 小时前
Codex 接入第三方模型 API 实战:以 Mimo 为例
java·服务器·数据库·ai·ai编程·codex
山峰哥13 小时前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
乐观的Terry13 小时前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
前端开发张小七13 小时前
Java 学习笔记 · 第二课:面向对象核心(封装、继承、多态)及接口与异常
java·后端·程序员