2010-07-15 15 views
7

Y at-il un moyen d'obtenir le fuseau horaire des callbacks reçuObtenir la zone Temps dans Android

void onLocationChanged(Location location) 

en utilisant les informations de temps qui peut être obtenu à partir du paramètre de localisation

long Time = location.getTime(); 

Ou s'il est une autre façon s'il vous plaît fournir des informations!

+0

Vous devez élaborer votre problème, car de toute évidence il n'y a pas de solution claire. – Doomsday

Répondre

3

Vous pouvez utiliser le service Web fourni par le geonames.org. Fournir la latitude et la longitude pour obtenir les informations sur le fuseau horaire.

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

Cela pourrait fonctionner, mais je veux quelque chose qui ne dépend pas d'une connexion Internet. Peut-être mettre en œuvre le même algorithme pour mon application. – rantravee

+0

C'est possible, mais vous devrez distribuer la base de données des pays, des lieux et des fuseaux horaires avec votre application. Notez également que les informations sur l'heure d'été peuvent changer dans les deux semaines. – CrazyCoder

2

Vous pouvez utiliser java.util.TimeZone pour obtenir des informations sur la zone de l'heure actuelle en appelant TimeZone.getDefault(), comme:

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

Correct mais cela retourne le fuseau horaire du téléphone qui pourrait être incorrect, ou inexact du fait que l'utilisateur est en train de voyager – rantravee

+1

Bon, j'ai mal compris votre intention alors. Puisque les heures de localisation sont toujours UTC, je ne pense pas qu'il y ait un mécanisme en place pour supporter cela. Cela nécessiterait une sorte de géocode à la cartographie de fuseau horaire, qui existe dans certains appareils GPS. Peut-être une fonctionnalité future pour Android ... – Thorstenvv

+0

Je pense que Android proposera automatiquement de changer le fuseau horaire par défaut lors de l'itinérance vers un autre pays. –

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