▌问题描述
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());