在android中获取时区

在android中获取时区,android,datetime,timezone,Android,Datetime,Timezone,有没有办法从收到的回调中获取时区 void onLocationChanged(Location location) 使用可从位置参数获得的时间信息 long Time = location.getTime(); 或者如果有其他方法,请提供信息 您可以使用java.util.TimeZone通过调用TimeZone.getDefault()来获取关于当前时区的信息,如: 您可以使用geonames.org提供的web服务。 提供纬度和经度以获取时区信息 : 输出 TimeZone G

有没有办法从收到的回调中获取时区

void onLocationChanged(Location location)  
使用可从位置参数获得的时间信息

long Time = location.getTime();

或者如果有其他方法,请提供信息

您可以使用java.util.TimeZone通过调用TimeZone.getDefault()来获取关于当前时区的信息,如:


您可以使用geonames.org提供的web服务。 提供纬度和经度以获取时区信息

:

输出

TimeZone   GMT+09:30   Timezon id :: Australia/Darwin

正确,但这返回的是手机的时区,可能不正确,或者不准确,因为用户是轻途旅行,我误解了您的意图。由于定位时间始终为UTC,我认为没有适当的机制来支持这一点。这需要某种地理编码到时区的映射,这种映射存在于一些GPS设备中。可能是Android未来的一项功能…我认为Android会自动建议在漫游到另一个国家时更改默认时区。你应该详细说明你的问题,因为显然没有明确的解决方案。这可能会起作用,但我想要不依赖互联网连接的东西。也许为我的应用程序实现相同的算法。这是可能的,但您需要在应用程序中分发国家、地点和时区的数据库。还请注意,夏令时信息可能在2周内更改。
{"time":"2010-07-24 18:35","countryName":"Austria","sunset":"2010-07-24 21:02","rawOffset":1,"dstOffset":2,"countryCode":"AT","gmtOffset":1,"lng":10.2,"sunrise":"2010-07-24 05:48","timezoneId":"Europe/Vienna","lat":47.01}
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone   "+tz.getDisplayName(false, TimeZone.SHORT)+"   Timezon id :: " + tz.getID());
TimeZone   GMT+09:30   Timezon id :: Australia/Darwin