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ámetroTipoDescripción
latobligatorio*numberDe -90 a 90.
lonobligatorionumberDe -180 a 180.
locationsopcionalstring*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.
tzopcionalstring*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.
timestampopcionalintegerHora Unix en segundos. Por defecto: ahora. Se acepta cualquier momento de 1900 a 2100; los desfases futuros usan las reglas publicadas actualmente.
languageopcionalstringIdioma de name, por ejemplo de o pt-BR. Por defecto, inglés.
keyopcionalstringClave 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&timestamp=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

CampoTipoDescripción
timezonestringNombre 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).
abbreviationstringAbreviatura en timestamp. Solo para mostrar; no es única.
namestringNombre largo vigente en timestamp, por ejemplo Australian Eastern Daylight Time.
utc_offsetstring±HH:MM en timestamp.
utc_offset_secondsintegerLo mismo, como número.
raw_offset_seconds, dst_offset_secondsintegerDesfase 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.
dstbooleanHorario de verano en vigor en timestamp.
timestampintegerEl momento descrito.
local_timestringHora local RFC 3339 con desfase.
country_codestring o nullISO 3166-1 alfa-2, null en el mar.
is_oceanbooleanTrue para las zonas Etc/GMT que se usan en aguas internacionales.
windows_timezonestring o nullEl id de zona horaria de Windows correspondiente según CLDR, por ejemplo W. Europe Standard Time.
next_transitionobject o nullEl siguiente cambio de desfase después de timestamp, si la zona lo tiene.

Notas

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.

ProveedorHostRuta
Google Maps Platformgapi.mygeocode.com/maps/api/timezone/json?location=lat,lng&timestamp=...&language=..
Bing Maps REST Servicesbing.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=...
LocationIQlocationiq.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.