Определение часового пояса
Часовой пояс точки и смещение, действующее там в заданный момент.
GEThttps://api.mygeocode.com/v1/timezone
Параметры
| Параметр | Тип | Описание |
|---|---|---|
latобязательный* | число | От -90 до 90. |
lonобязательный | число | От -180 до 180. |
locationsнеобязательный | строка | *Альтернатива lat и lon: до 100 точек в виде lat,lon|lat,lon|.... Каждая точка засчитывается как один запрос; ответ содержит массив results в порядке ввода. |
tzнеобязательный | строка | *Альтернатива координатам: идентификатор зоны IANA, например Europe/Zurich (идентификатор Windows тоже принимается). Возвращает те же поля для этой зоны без поиска по границам. |
timestampнеобязательный | целое число | Время Unix в секундах. По умолчанию: текущий момент. Принимается любой момент с 1900 по 2100; для будущих смещений используются опубликованные на данный момент правила. |
languageнеобязательный | строка | Язык для name, например de или pt-BR. По умолчанию английский. |
keyнеобязательный | строка | API-ключ, если он не передан в заголовке. |
Пример
$ 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"])Ответ
{
"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 }
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
timezone | строка | Имя IANA. В международных водах Etc/GMT+n или Etc/GMT-n (обратите внимание, что знак инвертирован, как в IANA). |
abbreviation | строка | Аббревиатура на момент timestamp. Только для отображения; не уникальна. |
name | строка | Полное название, действующее на момент timestamp, например Australian Eastern Daylight Time. |
utc_offset | строка | ±HH:MM на момент timestamp. |
utc_offset_seconds | целое число | То же в виде числа. |
raw_offset_seconds, dst_offset_seconds | целое число | Стандартное смещение и добавка летнего времени сверх него (0, когда летнее время не действует). Их сумма равна utc_offset_seconds. |
dst | логическое значение | Действует ли летнее время на момент timestamp. |
timestamp | целое число | Описываемый момент. |
local_time | строка | Местное время по RFC 3339 со смещением. |
country_code | строка или null | ISO 3166-1 alpha-2, null в море. |
is_ocean | логическое значение | True для зон Etc/GMT, используемых в международных водах. |
windows_timezone | строка или null | Соответствующий идентификатор часового пояса Windows из CLDR, например W. Europe Standard Time. |
next_transition | объект или null | Следующее изменение смещения после timestamp, если оно есть в этой зоне. |
Примечания
- Храните имя IANA и преобразуйте время с помощью базы tz вашей платформы. Поля смещения используйте для отображения или в системах без такой базы.
- Смещения и правила летнего времени соответствуют базе часовых поясов IANA и обновляются по мере выхода новых релизов.
- Границы упрощены примерно до 55 м, поэтому точка в нескольких метрах от сухопутной границы может быть отнесена к соседней зоне. Территориальные воды и открытый океан тоже покрыты; точки в море получают морскую зону (
Etc/GMT+3и так далее).
Тот же запрос в форматах других провайдеров
Если у вас уже есть код, написанный под одного из этих провайдеров, оставьте его: совместимый хост принимает тот же путь и те же параметры и отвечает в формате ответа этого провайдера, а за ним работает этот эндпоинт. См. как работают совместимые хосты.
| Провайдер | Хост | Путь |
|---|---|---|
| Платформа Google Maps | gapi.mygeocode.com | /maps/api/timezone/json?location=lat,lng×tamp=...&language=.. |
| REST-сервисы Bing Maps | 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=... |
Ошибки
400 invalid_request, если lat или lon отсутствует или вне допустимого диапазона, tz не является известной зоной, точек больше 100 или timestamp вне диапазона от 1900 до 2100. 503 unavailable, если данные о границах не загружены; ничего не засчитывается.