Hutool美国、中国时区转换(冬令时,夏令时)

    /**
     * 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

符合夏令时的规则

你可能感兴趣的:(java,开发语言)