如何在android中获得UTC偏移量

Sea*_*Pan 18 timezone android

我想在android中以秒为单位获得UTC偏移量.由于模拟器保持返回0,我无法判断我是否正确执行此操作.

    Calendar c=Calendar.getInstance();
        TimeZone tz=c.getTimeZone();
        int offsetFromUtc=tz.getOffset(0)/1000;
Run Code Online (Sandbox Code Playgroud)

当我在tz.getOffset中输入0时,这意味着我只想要gmt的秒数.如果我正在做的事情是正确的,请告诉我.谢谢

Dan*_*n S 47

时区偏移量可能在一年内发生变化,也许最常见的原因是夏令时.而不是将0传递给TimeZone.getOffset()使用当前时间来获取当前偏移量,创建一个新日期并获取其时间值:

TimeZone tz = TimeZone.getDefault();
Date now = new Date();
int offsetFromUtc = tz.getOffset(now.getTime()) / 1000;
Run Code Online (Sandbox Code Playgroud)

模拟器默认为UTC,请尝试检查要测试的可用时区.您也可以通过时区开关设置时区,查看 -timezone 的文档.

  • [getOffset](http://developer.android.com/reference/java/util/TimeZone.html#getOffset(long))返回int,具有足够的小数时区精度,直到第二个. (3认同)