最近项目中遇到一个问题,在测试环境中,通过断点测试,new Date()得出来的时间跟本地时间是一致的,插入数据库的时间也是对的,就是直接返回给前端的时间少了8个小时。然而在正式环境中,new Date()得出来的时间比正常时间少了八个小时,但是返回给前端的时间又是正常的。网上查了好多资料,有说服务器时区问题,有说数据库时区问题,有说在spring的配置加上时区配置,还有说在mysql的连接URL上加上时区设置。这所有的都试过了还是不能解决问题。踩了两个小时的坑,终于找到篇文章,加入以下几句代码就搞定,先把时区设置为上海,在根据时区new Date() 就可以了。

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
                sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
                entity.set("createTime", sdf.format(new Date()));
                mapper.insert(entity);

 

Logo

更多推荐