Javayyyy-MM-dd HH:mm 与yyyy-MM-dd hh:mm引发的大坑

    技术2022-08-01  67

    项目中,以前有个需求,每隔一段时间,拉取车辆的最新坐标位置

    然后根据时间进行归档、检查、清洗、预警、报警等操作

    但是

    源数据没问题,归档的数据,总是对不上,有时好,有时坏,检查了很多遍代码,发现了不少问题

    但是,归档数据错误的问题,依旧存在

    最后发现,同事在按时间归档的时候,使用了yyyy-MM-dd hh:mm:ss

    于是乎,0-12点的数据正确,12点以后的不正确,如果出现跨12点的数据,数据完全混乱了

    不是错误的错误,太坑

    大写的H是二十四小时制的小时数(0-23),小写的h是十二小时制的小时数(am/pm 1-12) public static void main(String[] args) { Date date = new Date(); String date_HH = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); System.out.println(date_HH); String date_hh = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(date); System.out.println(date_hh); }

    输出:

    2020-07-02 17:25:27 2020-07-02 05:25:27

    Processed: 0.010, SQL: 9