如何在android中以秒为单位获取UTC偏移量
我试图在 android 中以秒为单位获取 UTC 偏移量。由于模拟器不断返回 0,我无法判断我是否正确执行了此操作。
Calendar c=Calendar.getInstance();
TimeZone tz=c.getTimeZone();
int offsetFromUtc=tz.getOffset(0)/1000;
当我在 tz.getOffset 中输入 0 时,这意味着我只需要 gmt 的秒数。 让我知道我所做的是否正确。谢谢
I'm trying to get the UTC offset in seconds in android. Since the emulator keeps returning 0, I can't tell if I'm doing this correctly or not.
Calendar c=Calendar.getInstance();
TimeZone tz=c.getTimeZone();
int offsetFromUtc=tz.getOffset(0)/1000;
When I put 0 in the tz.getOffset it means I just want the number of seconds from gmt.
Let me know if what Im doing is correct. Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
时区偏移在一年中可能会发生变化,最常见的原因可能是夏令时。而不是将 0 传递给 TimeZone.getOffset() 使用当前时间获取当前偏移量,创建一个新的 Date 并获取其时间值:
模拟器默认为 UTC,尝试检查可用的时区进行测试。您还可以通过时区开关来设置时区,查看文档对于-时区。
Time Zone offsets can change during the year, perhaps the most common reason is Daylight Savings Time. Instead of passing 0 to TimeZone.getOffset() uses the current time to get the current offset, create a new Date and get its Time value:
The emulator defaults to UTC, try checking the available timezones to test. Also you can pass a timezone switch to set the timezone, check the documentation for -timezone.
模拟器的默认时区是 GMT,这意味着您将始终获得 0 的偏移量。
你的代码看起来不错(我没有尝试)。
尝试将模拟器的时区更改为其他时区并检查您的代码。
看看这个开放帖子:链接< /a>
The default timezone of the emulator is GMT, meaning you will always get an offset of 0.
Your code looks fine (I didn't try it).
Try changing the timezone of your emulator to something else and check your code.
Take a look in this open post: Link