Consulta de zona horaria
La zona horaria de un punto y el desfase vigente allí en un momento dado.
GEThttps://api.mygeocode.com/v1/timezone
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
latobligatorio* | number | De -90 a 90. |
lonobligatorio | number | De -180 a 180. |
locationsopcional | string | *Alternativa a lat y lon: hasta 100 puntos como lat,lon|lat,lon|.... Cada punto cuenta como una solicitud; la respuesta tiene un array results en el orden de entrada. |
tzopcional | string | *Alternativa a las coordenadas: un id de zona IANA como Europe/Zurich (también se acepta un id de Windows). Devuelve los mismos campos para esa zona sin consultar límites. |
timestampopcional | integer | Hora Unix en segundos. Por defecto: ahora. Se acepta cualquier momento de 1900 a 2100; los desfases futuros usan las reglas publicadas actualmente. |
languageopcional | string | Idioma de name, por ejemplo de o pt-BR. Por defecto, inglés. |
keyopcional | string | Clave de API, si no se envía como cabecera. |
Ejemplo
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/timezone?lat=-33.8688&lon=151.2093×tamp=1767225600"const url = new URL("https://api.mygeocode.com/v1/timezone");
url.searchParams.set("lat", -33.8688);
url.searchParams.set("lon", 151.2093);
url.searchParams.set("timestamp", 1767225600); // 2026-01-01T00:00:00Z
const tz = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(tz.timezone, tz.utc_offset, tz.dst);import requests
tz = requests.get("https://api.mygeocode.com/v1/timezone",
params={"lat": -33.8688, "lon": 151.2093, "timestamp": 1767225600}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5).json()
print(tz["timezone"], tz["utc_offset"], tz["dst"])Respuesta
{
"status": "ok",
"lat": -33.8688,
"lon": 151.2093,
"timezone": "Australia/Sydney",
"abbreviation": "AEDT",
"utc_offset": "+11:00",
"utc_offset_seconds": 39600,
"dst": true,
"timestamp": 1767225600,
"local_time": "2026-01-01T11:00:00+11:00",
"country_code": "AU",
"next_transition": { "timestamp": 1775316000, "utc_offset": "+10:00", "dst": false }
}Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
timezone | string | Nombre IANA. En aguas internacionales, Etc/GMT+n o Etc/GMT-n (ten en cuenta que la convención de signos está invertida, como en IANA). |
abbreviation | string | Abreviatura en timestamp. Solo para mostrar; no es única. |
name | string | Nombre largo vigente en timestamp, por ejemplo Australian Eastern Daylight Time. |
utc_offset | string | ±HH:MM en timestamp. |
utc_offset_seconds | integer | Lo mismo, como número. |
raw_offset_seconds, dst_offset_seconds | integer | Desfase estándar y la parte de horario de verano que se le suma (0 cuando el horario de verano no está en vigor). Su suma es utc_offset_seconds. |
dst | boolean | Horario de verano en vigor en timestamp. |
timestamp | integer | El momento descrito. |
local_time | string | Hora local RFC 3339 con desfase. |
country_code | string o null | ISO 3166-1 alfa-2, null en el mar. |
is_ocean | boolean | True para las zonas Etc/GMT que se usan en aguas internacionales. |
windows_timezone | string o null | El id de zona horaria de Windows correspondiente según CLDR, por ejemplo W. Europe Standard Time. |
next_transition | object o null | El siguiente cambio de desfase después de timestamp, si la zona lo tiene. |
Notas
- Guarda el nombre IANA y convierte las horas con la base de datos tz de tu plataforma. Usa los campos de desfase para mostrar o para sistemas que no la tengan.
- Los desfases y las reglas de horario de verano siguen la base de datos de zonas horarias de IANA y se actualizan a medida que se publican nuevas versiones.
- Los límites están simplificados a unos 55 m, así que un punto a pocos metros de una frontera terrestre puede resolverse en la zona vecina. También se cubren las aguas territoriales y el mar abierto; los puntos en alta mar reciben la zona náutica (
Etc/GMT+3, etc.).
La misma consulta en los formatos de otros proveedores
Si ya tienes código escrito para uno de estos proveedores, consérvalo: el host compatible acepta la misma ruta y los mismos parámetros y responde con la estructura de respuesta de ese proveedor, con este endpoint detrás. Consulta cómo funcionan los hosts compatibles.
| Proveedor | Host | Ruta |
|---|---|---|
| Google Maps Platform | gapi.mygeocode.com | /maps/api/timezone/json?location=lat,lng×tamp=...&language=.. |
| Bing Maps REST Services | bing.mygeocode.com | /REST/v1/TimeZone/{lat},{lon}?datetime=.../REST/v1/TimeZone/?query=lat,lon/REST/v1/TimeZone/List?timezoneStandard=iana|windows/REST/v1/TimeZone/Convert?datetime=...&fromtz=...&desttz=... |
| LocationIQ | locationiq.mygeocode.com | /v1/timezone?lat=...&lon=... |
Errores
400 invalid_request cuando falta lat o lon o están fuera de rango, tz no es una zona conocida, hay más de 100 puntos, o timestamp está fuera del rango de 1900 a 2100. 503 unavailable cuando los datos de límites no están cargados; no se contabiliza nada.