/**
* hutool转换
*/
public void usTimeZoneToCn2(String dateStr) {
// 美国时区
TimeZone usTimeZone = TimeZone.getTimeZone("America/Los_Angeles");
TimeZone cnTimeZone = TimeZone.getTimeZone("Asia/Shanghai");
SimpleDateFormat ff = new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
ff.setTimeZone(usTimeZone);
DateTime usTime = DateUtil.parse(dateStr, ff);
// System.out.println(usTime.getTimeZone().getID());//America/Los_Angeles
// 转换为中国时区
ff.setTimeZone(cnTimeZone);
String format = DateUtil.format(usTime, ff);
System.out.println(usTime + "\t" + format);
}
@Test
public void testTimeZone() {
usTimeZoneToCn2("2021-03-14 02:59:59");
usTimeZoneToCn2("2021-03-14 03:00:00");
}
运行结果:
2021-03-14 03:59:59 2021-03-14 18:59:59
2021-03-14 03:00:00 2021-03-14 18:00:00
可以看到,传入日期 2021-03-14 02:59:59,返回 2021-03-14 18:59:59,传入 2021-03-14 03:00:00,返回 2021-03-14 18:00:00
符合夏令时的规则