为了账号安全,请及时绑定邮箱和手机立即绑定

Java 日期获取实际偏移量

Java 日期获取实际偏移量

30秒到达战场 2021-12-01 17:12:11
我想获得一个时区的实际偏移量。我的问题 : TimeZone tz = TimeZone.getTimeZone("America/Toronto");int test = tz.getRawOffset();test = -18000000-18000000/1000/3600 = -5 或者如果我去https://www.google.fr/search?q=horaire+toronto&oq=horaire+toro&aqs=chrome.1.69i57j0l5.3311j0j7&sourceid=chrome&ie=UTF-8我看到多伦多在 UTC-4。它写在文档上,该方法返回 brut offset。但是我怎样才能得到真正的偏移量?
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

getRawOffset不考虑夏令时。它反映了标准时间。从文档:

返回要添加到 UTC 以获取此时区中的标准时间的时间量(以毫秒为单位)。由于此值不受夏令时的影响,因此称为原始偏移量。

多伦多目前正在遵守夏令时(直到 11 月 4 日),因此其当前的 UTC 偏移量为 -4 小时,但这是 -5 小时“标准”和 +1 小时 DST。

现在有一个不准确的假设:时区永远不会改变其标准时间。java.util.TimeZone是一种相对古老和原始的表示;最好java.time.ZoneIdjava.time软件包的其余部分一起使用。

如果您必须使用java.util.TimeZone,则调用getOffset(long)以获取特定时刻的 UTC 偏移量。


查看完整回答
反对 回复 2021-12-01
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

时间

该java.utilAPI是过时的,而且容易出错。建议完全停止使用它并切换到现代 Date-Time API *。


使用java.time现代日期时间 API 的解决方案:


import java.time.LocalDate;

import java.time.LocalDateTime;

import java.time.LocalTime;

import java.time.Month;

import java.time.ZoneId;

import java.time.ZoneOffset;

import java.time.ZonedDateTime;


public class Main {

    public static void main(String[] args) {

        ZoneId zoneId = ZoneId.of("America/Toronto");

        LocalDateTime ldtDstOn = LocalDateTime.of(LocalDate.of(2018, Month.OCTOBER, 22), LocalTime.MIN);

        LocalDateTime ldtDstOff = LocalDateTime.of(LocalDate.of(2018, Month.NOVEMBER, 22), LocalTime.MIN);


        // Using ZonedDateTime

        ZoneOffset offsetDstOn = ZonedDateTime.of(ldtDstOn, zoneId).getOffset();


        // Alternatively, using ZoneId#getRules

        ZoneOffset offsetDstOff = zoneId.getRules().getOffset(ldtDstOff);


        System.out.println(offsetDstOn);

        System.out.println(offsetDstOff);

    }

}

输出:


-04:00

-05:00


查看完整回答
反对 回复 2021-12-01
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

不要使用 getRawOffset

用 : tz.getOffset(new Date().getTime()) / 1000 / 3600


查看完整回答
反对 回复 2021-12-01
  • 3 回答
  • 0 关注
  • 359 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信