如何获取时区(偏离GMT)并在android中转换为double

时间:2015-03-03 09:49:26

标签: android

在我的应用程序中,我需要获取时区,将其转换为double并使用特定的双数据添加它。我使用以下内容:

Double.parseDouble(Time.getCurrentTimezone())

不幸的是,这不能正常工作。建议得到高度赞赏。

1 个答案:

答案 0 :(得分:3)

试试这个:

Double d = (double) (TimeZone.getTimeZone(Time.getCurrentTimezone()).getOffset(System.currentTimeMillis()));

Time.getCurrentTimezone()将时区ID作为String返回,您必须使用TimeZone类来获取偏移量,并且必须传递当前时间,因为时区偏移取决于时间的确切实例,即时区偏移不是静态的。

getOffset()方法返回int,其时区偏移量以毫秒为单位。不确定为什么你需要一个double,但你可以投它。

如果您想要以小时为单位的偏移量,您也可以这样做:

Double d = (TimeZone.getTimeZone(Time.getCurrentTimezone()).getOffset(System.currentTimeMillis())) / (1000.0 * 60.0 * 60.0);

另外请记住,并非所有时区偏移都是完整的小时数。