如何在android中以秒为单位获得UTC偏移



我试图在android中以秒为单位获得UTC偏移量。由于模拟器一直返回0,我不能告诉我是否这样做是正确的。

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

当我在tz中输入0时。它的意思是我想要从gmt开始的秒数。让我知道我做的是否正确。由于

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

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

模拟器默认为UTC,尝试检查可用的时区进行测试。也可以通过一个时区开关来设置时区,请查看文档中的-timezone。

模拟器的默认时区是GMT,这意味着您将始终获得0的偏移量。您的代码看起来很好(我没有尝试过)。尝试将模拟器的时区更改为其他时区,并检查代码。看看这个开放的帖子:Link

相关内容

  • 没有找到相关文章

最新更新