Java new Date() 获取的时间不正确 【已解决】

作者: gavin 分类: Java,Java 基础 发布时间: 2020-11-05 23:21

问题描述:

new Date()获取正确,使用TimeUtils.timeInUTC()转换日期格式后,时间早了比北京时间晚了8小时

分析原因:

时区不正确,TimeUtils默认使用格林威治时间,晚了8小时,而我们使用的是北京时间,需要设置时区为东8区

解决方法:

在时间格式转换前,添加以下代码

System.out.println("原时间 " + new Date());
 
TimeZone time = TimeZone.getTimeZone("Etc/GMT-8");  //转换为中国时区
 
TimeZone.setDefault(time);
 
System.out.println("修改后时间 " + new Date());