在我的应用程序中,我需要获取时区,将其转换为double并使用特定的双数据添加它。我使用以下内容:
Double.parseDouble(Time.getCurrentTimezone())
不幸的是,这不能正常工作。建议得到高度赞赏。
答案 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);
另外请记住,并非所有时区偏移都是完整的小时数。