2010-03-24 3 views
1

Je consommais les prévisions météorologiques internationales via l'API XML de Wunderground:Wunderground et UTC Offset

http://wiki.wunderground.com/index.php/API_-_XML 

Regarder une sortie pour Kaboul, en Afghanistan par exemple:

http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=OAKB 

Je remarque qu'il n'y a Décalage UTC. Le plus proche que je peux voir est celui-ci:

<tz_short>AFT</tz_short> 

Ce qui identifie le fuseau horaire actuel est AFT. Le problème que je vois est qu'il n'y a aucune abréviation de fuseau horaire universellement acceptée, donc je ne peux pas prendre ces abréviations et rechercher et décaler des objets TimeZoneInfo de C#. Y at-il une liste des abréviations/noms/décalages de fuseaux horaires de Wunderground pour que je puisse mapper leurs fuseaux horaires aux objets TimeZoneInfo, ou y a-t-il un meilleur moyen d'obtenir cette information? J'aurai besoin d'utiliser TimeZoneInfo pour calculer l'heure d'été sur différents sites internationaux.

Répondre

2

Voici une idée de ce que vous pouvez faire pour obtenir un décalage UTC.

Utilisez le champ epoch de la sortie XML, qui sera dans l'heure UNIX (nombre de secondes depuis 1970-01-01 00:00). Cette fois-ci sera en UTC/GMT. Ensuite, soit en convertissant le contenu du champ pretty, soit en utilisant les champs jour/mois/année/heure/minute/seconde, déterminez la différence entre l'heure locale publiée et l'heure de l'époque. Cela vous donnera votre décalage UTC. Il y a aussi un champ isdst pour vous dire si la zone respecte ou non l'heure d'été pour le moment. Malheureusement je ne connais pas une liste complète des abréviations de fuseau horaire, donc en utilisant la méthode ci-dessus pour déterminer le décalage et DST est probablement votre meilleure option. Bonne chance!

+0

Excellente solution. – Brandon