我正在尝试在android中以秒为单位获取UTC偏移量。由于仿真器始终返回0,因此我无法确定自己是否正确执行此操作。

    Calendar c=Calendar.getInstance();
        TimeZone tz=c.getTimeZone();
        int offsetFromUtc=tz.getOffset(0)/1000;

当我在tz.getOffset中输入0时,这意味着我只想要距gmt的秒数。
让我知道我在做什么是正确的。谢谢

最佳答案

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

TimeZone tz = TimeZone.getDefault();
Date now = new Date();
int offsetFromUtc = tz.getOffset(now.getTime()) / 1000;

模拟器默认为UTC,请尝试检查可用的时区以进行测试。您还可以传递时区开关来设置时区,check the documentation为-timezone。

关于android - 如何在Android中以秒为单位获取UTC偏移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7289660/

10-15 12:29