Question

Est-il un service web de quelque sorte (ou tout autre moyen) pour tirer un courant de paramètres de fuseau horaire pour un (US) de la ville.Pour les parties du pays qui ne respectent pas l'Heure d'été et fondamentalement sauter fuseaux horaires quand tout le monde est de commutation heure été/hiver...Je n'ai pas envie de créer leur propre base de données des lieux qui ne suivent pas l'heure d'été.Est-il un moyen d'extraire ces données sur la demande?

J'en ai besoin pour le serveur de base de données (pas pour les postes de travail du client) - il y entités stockées dans la base de données de la Ville, l'État en tant que propriétés.J'ai besoin de savoir fuseau horaire actuel pour ces entités, à tout moment de temps.

Était-ce utile?

La solution

earthtools.org fournit un service web gratuit pour obtenir le fuseau horaire de la ville ici:

http://www.earthtools.org/webservices.htm#timezone

Vous venez de passer en long/lat valeurs comme ceci:(C'est pour New York)

http://www.earthtools.org/timezone-1.1/40.71417/-74.00639


EDIT:

Il semble que earthtools a été arrêté.Une bonne alternative (Qui n'existait pas en 2008, lorsque cette question a été répondu) est le Google de fuseau Horaire de l'API.Pour l'utiliser, vous devez d'abord activer le fuseau Horaire de l'API sur votre compte.Il est gratuit si vous restez en dessous de ces limites:

  • 2500 demandes par période de 24 heures.
  • 5 requêtes par seconde.

La documentation est disponible sur les Développeurs de Google.

Autres conseils

Nous avons rencontré le même problème et, aux côtés du grand suggestions ci-dessus, Google semble avoir la complémentarité de deux Api, un pour le Temps de la Zone de géocodage (latitude/longitude) des données et de l'API de géocodage.

Par exemple, pour obtenir le fuseau horaire et le décalage de San Francisco:

1) Convertir la ville de géocodées emplacement:

http://maps.googleapis.com/maps/api/geocode/json?address=San%20Francisco,+CA&sensor=false

Le géocodées emplacement est dans le JSON de données de retour:

"location": {
    "lat":  37.77492950,
    "lng": -122.41941550
}

2) Convertir le géocodées lieu à un fuseau horaire local et de compenser, le cas échéant:

https://maps.googleapis.com/maps/api/timezone/json?location=37.77492950,-122.41941550×tamp=1331161200&sensor=false

Qui renvoie les informations de fuseau horaire actuel:

{
          "status": "OK",
       "dstOffset":  0.0,
       "rawOffset": -28800.0,              
      "timeZoneId": "America/Los_Angeles",
    "timeZoneName": "Pacific Standard Time"
}

Les zones de temps pour une région peut changer pour une variété de raisons.Donc c'est une bonne idée de trouver une autorité basée sur le serveur de la solution et de ne pas mettre en cache.Pour plus d'informations, voir Wikipédia le fuseau Horaire de l'article.

Geonames.org a un magnifique ensemble d'une multitude de données qui est disponible via webservice ou télécharger:

http://www.geonames.org/export/ws-overview.html

En particulier

http://www.geonames.org/export/web-services.html#timezone

.

Earthtool du fuseau horaire de l'info n'est pas à jour ...pour une instance, du Sri Lanka, le décalage actuel est de +5.5 à partir GMT mais EarthTools montre que +6 qui était l'ancien décalage avant 2005.

Je suggère GeoNames.org.

WorldTimeServer.com a ce qui semble être une vaste base de données de fuseau horaire, vous pouvez acheter l'accès à une variété de formats, y compris un .NET composant pour une utilisation Web.

Pas de connexion, n'avait qu'à la recherche de la même chose moi-même récemment.

Simple Hors Ligne De La Bibliothèque : APTimeZones

Afin de trouver le fuseau horaire de l'endroit que vous pouvez utiliser tels que les API Google Maps est l'heure de la zone de l'API.Malheureusement, cela vous oblige à interroger un service à distance et vous êtes soumis à leurs limites.

Voici une bibliothèque rom Alterplay appelé APTimeZones(Git est jointe en annexe) qui permet d'extraire un NSTimeZone à partir d'un emplacement donné, sans avoir besoin de se connecter à un service distant. APTimeZones les œuvres par interrogation d'un local liste de fuseaux horaires (inclus avec la bibliothèque).

Dans le cas où quelqu'un devrait bosse sur cette question.

  • Vous pouvez utiliser l'API Google pour rechercher une adresse.Qui renvoie la latitude / longitude.Avec ces valeurs dans la main, vous pouvez trouver la plus proche de fuseau horaire à l'aide par exemplePHP.

  • Ou vous pouvez utiliser une API comme timezoneapi.io (je suis derrière) qui vous permet de rechercher une adresse / ville / pays.Il renvoie l'adresse, les informations de fuseau horaire et de la date/heure actuelle pour le fuseau horaire.

https://timezoneapi.io/developers/address

J'ai trouvé une base de données téléchargeable gratuitement ici: http://citytimezones.info/

[modifier] ...mais des informations plus précises (y compris les sources) basé sur le Olson DB peut être trouvé ici: http://en.wikipedia.org/wiki/Tz_database

Je sais que c'est une réponse, mais je suis l'affichage de cette réponse que l'on pourrait encore trouver utile - La réponse choisie ne fonctionne pas réussi à maintenant.

Google ont leur propre service, qui est très fiable et facile à utiliser, et les sorties d'info au format JSON.Il permet même de spécifier un temps personnalisé, e.g obtenir le fuseau horaire dans le 02/02/2013 à Malte.

https://developers.google.com/maps/documentation/timezone/

Google, 2500 requêtes gratuites par jour https://developers.google.com/maps/documentation/timezone/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top