Pregunta

¿Existe algún servicio web de algún tipo (o de cualquier otra forma) para obtener la configuración de zona horaria actual para una ciudad (EE. UU.)?Para las partes del país que no siguen el horario de verano y básicamente saltan zonas horarias cuando todos los demás cambian el horario de verano/invierno...No me apetece crear mi propia base de datos de los lugares que no siguen el horario de verano.¿Hay alguna manera de obtener estos datos a pedido?

Necesito esto para el servidor de la base de datos (no para las estaciones de trabajo del cliente): hay entidades almacenadas en la base de datos que tienen Ciudad y Estado como propiedades.Necesito saber la zona horaria actual de estas entidades en cualquier momento.

¿Fue útil?

Solución

Earthtools.org proporciona un servicio web gratuito para obtener la zona horaria de una ciudad aquí:

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

Simplemente pasa los valores largos/latitud de esta manera:(Esto es para Nueva York)

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


EDITAR:

Parece que Earthtools ha sido cerrado.Una buena alternativa (que no existía en 2008 cuando se respondió esta pregunta) es la API de zona horaria de Google.Para usarlo primero debes activar la API de zona horaria en tu cuenta.Es gratis si te mantienes por debajo de estos límites:

  • 2500 solicitudes por período de 24 horas.
  • 5 solicitudes por segundo.

La documentación está disponible en Google Developers.

Otros consejos

Encontramos el mismo problema y, además de las excelentes sugerencias anteriores, Google parece tener dos API complementarias, una para la zona horaria a partir de datos de geocodificación (latitud/longitud) y la API de geocodificación.

Por ejemplo, para obtener la zona horaria y el desplazamiento de San Francisco:

1) Convierta la ciudad a una ubicación geocodificada:

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

La ubicación geocodificada está en los datos de retorno JSON:

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

2) Convierta la ubicación geocodificada a una zona horaria local y compásela, si corresponde:

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

Que devuelve la información de la zona horaria actual:

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

Las zonas horarias de una región pueden cambiar por diversas razones.Por lo tanto, es una buena idea encontrar una solución basada en servidor autorizada y no en caché.Para más información, ver Artículo sobre zona horaria de Wikipedia.

Geonames.org tiene un maravilloso conjunto de datos mundanos que están disponibles a través del servicio web o descarga:

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

En particular

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

.

La información de zona horaria de Earthtool no está actualizada...por ejemplo, la diferencia actual de Sri Lanka es +5,5 con respecto a GMT, pero EarthTools muestra como +6, que era la diferencia anterior antes de 2005.

yo sugiero GeoNames.org.

WorldTimeServer.com tiene lo que parece ser una base de datos completa de zonas horarias, a la que puede adquirir acceso en una variedad de formatos, incluido un componente .NET para uso web.

No hay conexión, solo tuve que investigar lo mismo recientemente.

Biblioteca sencilla sin conexión: Zonas horarias AP

Para encontrar la zona horaria de una ubicación, puede utilizar la API de zona horaria de la API de Google Maps.Desafortunadamente, esto requiere que consultes un servicio remoto y estás sujeto a sus límites.

Aquí hay una biblioteca de Alterplay llamada Zonas horarias AP(Se adjunta Git) que le permite extraer un NSTimeZone de una ubicación determinada sin la necesidad de conectarse a un servicio remoto. Zonas horarias AP funciona consultando una lista local de zonas horarias (incluida con la biblioteca).

En caso de que alguien se encuentre con esta pregunta.

  • Puede utilizar la API de Google para buscar una dirección.Eso devuelve latitud/logitud.Con esos valores en la mano, puede encontrar la zona horaria más cercana usando, por ejemplo.PHP.

  • O puede usar una API como timezoneapi.io (yo estoy detrás de eso) que le permite buscar una dirección/ciudad/país.Devuelve la dirección, la información de la zona horaria y la fecha/hora actual para esa zona horaria determinada.

https://timezoneapi.io/developers/address

Encontré una base de datos descargable gratuita aquí: http://citytimezones.info/

editar] ...pero puede encontrar información más precisa (incluidas fuentes) basada en Olson DB aquí: http://en.wikipedia.org/wiki/Tz_database

Sé que esto está respondido, pero estoy publicando esta respuesta porque las personas aún pueden encontrarla útil. La respuesta seleccionada no funciona correctamente en este momento.

Google tiene su propio servicio, que es muy confiable y fácil de usar, y genera información en formato JSON.Incluso permite especificar una hora personalizada, por ejemplo, obtener la zona horaria del 02/02/2013 en Malta.

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

Google, 2500 solicitudes gratuitas al díahttps://developers.google.com/maps/documentation/timezone/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top