2010-07-15 12 views
7

¿Hay una manera de obtener la zona horaria de las devoluciones de llamada recibidaLa obtención de zona horaria en la androide

void onLocationChanged(Location location) 

utilizando la información de tiempo que se puede obtener a partir del parámetro de localización

long Time = location.getTime(); 

O si hay es otra forma de proporcionar información!

+0

Se deberán explicar su problema, porque, obviamente, no hay solución clara. – Doomsday

Respuesta

3

Usted puede utilizar el servicio web proporcionada por el geonames.org. Proporciona la latitud y la longitud para obtener la información de la zona horaria.

http://ws.geonames.org/timezoneJSON?lat=47.01&lng=10.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} 
+0

Eso podría funcionar, pero quiero algo que no dependa de una conexión a Internet. Quizás implementando el mismo algoritmo para mi aplicación. – rantravee

+0

Eso es posible, pero necesitará distribuir la base de datos de países, ubicaciones y zonas horarias con su aplicación. También tenga en cuenta que la información de ahorro de luz diurna puede cambiar en 2 semanas. – CrazyCoder

2

Puede utilizar java.util.TimeZone para obtener información sobre la zona horaria actual llamando TimeZone.getDefault(), como:

java.util.TimeZone tz = java.util.TimeZone.getDefault(); 
Toast.makeText(context, tz.getDisplayName(), Toast.LENGTH_LONG).show(); 
+1

Correcto, pero esto devuelve el huso horario del teléfono que podría ser incorrecto o impreciso debido al hecho de que el usuario está viajando – rantravee

+1

Bien, entendí mal su intención en ese momento. Dado que los tiempos de ubicación siempre son UTC, no creo que haya un mecanismo para apoyar esto. Eso requeriría algún tipo de mapeo de geocodificación a zona horaria, que existe en algunos dispositivos GPS. Tal vez una característica futura para Android ... – Thorstenvv

+0

Creo que Android automáticamente sugerirá cambiar la zona horaria predeterminada cuando esté en roaming en otro país. –

0
TimeZone tz = TimeZone.getDefault(); 
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " + tz.getID()); 

OutPut

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