UTC时间转PST时间,区分冬夏令时

这里写自定义目录标题

冬夏令时

最近遇到一个需求,需要把数据库存的UTC时间转为PST时间。由于UTC没有冬夏令时,如果直接用sql查询时候 -8小时,这样就不是冬夏令时了。PST是太平洋标准时间(西八区区时),与北京时间(东八区区时)时差16个小时(冬令时)或15个小时(夏令时)。换句话说:夏令时UTC-7,冬令时UTC-8。使用java8 的api进行时区切换时候就可以自动算上冬夏令时的偏移量。

时区转换

        ZoneId newZone = ZoneId.of("America/Los_Angeles");
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
        String timeString = "2022-08-29 01:46:12";
        LocalDateTime parse = LocalDateTime.parse(timeString,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        //原本数据库存的时间是UTC时间,
        ZonedDateTime zonedDateTime1 = ZonedDateTime.of(parse, ZoneId.of("UTC"));
        parse = LocalDateTime.ofInstant(zonedDateTime1.toInstant(),newZone);
        //parse : 08/28/2022 18:46:12, UTC-7
        timeString = dtf2.format(parse);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值