2010-12-15 68 views
1

Est-ce que quelqu'un connaît un service Web qui convertit une chaîne de fuseau horaire en décalage GMT correspondant?Webservice pour convertir le nom de timzezone en décalage GMT

Signification J'aime envoyer une requête HTTP comme ceci:

http://servcer.com/getgmtoffset?timezone=Europe/Zurich

et obtenir "+1" retourné.

Pourquoi un service externe? J'écris un google apps script, où l'API n'a pas de telles options de conversion et je préfère ne pas mettre à jour la table de conversion moi-même, lorsque les pays décident d'utiliser différents paramètres de l'heure d'été.

Répondre

1

J'ai trouvé quelque chose dans this answer

http://json-time.appspot.com/time.json?tz=Europe/Zurich 

{ 
    "tz": "Europe\/Zurich", 
    "hour": 9, 
    "datetime": "Thu, 16 Dec 2010 09:29:16 +0100", 
    "second": 16, 
    "error": false, 
    "minute": 29 
} 
0

Je ne pense pas qu'il existe un service Web pour cela. Probablement parce que les pays changent rarement (jamais?) Leur politique de l'heure d'été.

Je ne sais pas ce que vous pouvez faire dans les scripts Google Apps, mais si vous avez accès aux bibliothèques Java, vous pouvez simplement utiliser la méthode TimeZone.getOffset(long).

Vous pouvez également essayer this, mais il pourrait être le piratage puisque vous aurez probablement besoin d'analyser la réponse html ...

2

Je vois que vous avez déjà une solution, mais je voulais souligner que le décalage de fuseau horaire est sans signification sans une date spécifique dans ce fuseau horaire. Le décalage changera dans de nombreux fuseaux horaires tout au long de l'année pour tenir compte de l'heure d'été.

Il semble que vous ayez seulement besoin de connaître le décalage au moment précis où vous effectuez l'appel de l'API. Si vous en avez besoin pour une date arbitraire, vous devrez passer la date et le fuseau horaire à une API pour obtenir le décalage correct.

Il y a quelques Timezone géocodage API ici que vous trouverez peut-être utile: Timezone lookup from latitude longitude