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

2020-11-24 10:08:09 浏览数 (1)

▌问题描述

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

▌原因分析

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

▌解决方案

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

代码语言:javascript复制
System.out.println("原时间 "   new Date());
 
TimeZone time = TimeZone.getTimeZone("Etc/GMT-8");  //转换为中国时区
 
TimeZone.setDefault(time);
 
System.out.println("修改后时间 "   new Date());

0 人点赞