converttolocaltime — скрипт и функция диаграммы
Преобразует формат метки времени UTC или GMT в местное время и выводит в виде двойного значения.
Синтаксис:
ConvertToLocalTime(timestamp [, place [, ignore_dst=false]])
Тип возврата данных: двойное значение
Аргумент | Описание |
---|---|
timestamp | Дата для вычисления в виде метки времени или выражения, определяемого по метке времени, для преобразования, например '2012-10-12'. |
place |
Город или часовой пояс из таблицы городов и часовых поясов, указанной ниже. Либо можно использовать GMT или UTC для определения местного времени. Следующие значения и диапазоны смещения времени являются действительными.
Примечание к информацииЕсли используется смещение DST ― переход на летнее время (то есть значение аргумента ignore_dst дает результат False), необходимо указывать место, а не смещение GMT (относительно времени по Гринвичу) в аргументе place. Это объясняется тем, что для коррекции с учетом летнего времени требуются данные о широте в дополнение к данным о долготе, указанным в смещении относительно времени по Гринвичу. Для получения информации см. раздел Использование смещения относительно времени по Гринвичу в сочетании с данными о переходе на летнее время.
Примечание к информацииМожно использовать только стандартные значения смещения времени. Невозможно использовать произвольное смещение времени, например GMT-04:27.
|
ignore_dst |
Если значение аргумента дает результат True, DST (переход на летнее время) игнорируется. Допустимые значения аргумента, дающие результат True: -1 и True(). Если значение этого аргумента дает результат False, метка времени корректируется с учетом перехода на летнее время. Допустимые значения аргумента, дающие результат False: 0 и False(). Если значение аргумента ignore_dst недействительно, функция оценивает выражение так, как если бы значение ignore_dst давало результат True. Если значение аргумента ignore_dst не указано, функция оценивает выражение так, как если бы значение ignore_dst давало результат False. |
Результирующее время настраивается в соответствии с переходом на летнее время, если для параметра ignore_dst не задано значение True.
Города и часовые пояса
Функция ConvertToLocalTime извлекает сведения о городах и часовых поясах мира из реестра Windows. Это означает, что для надлежащей работы функции название города, которое необходимо использовать, должно соответствовать наванию города в реестре Windows.
Точное название, под которым город фигурирует в реестре Windows, может измениться в зависимости от параметров языка установки Windows. Это обусловлено разным написанием названий определенных городов и стран на разных языках.
Полный список городов и часовых поясов в реестре Windows находится в следующем расположении:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
Кроме того, со списком городов и часовых поясов можно ознакомиться на панели управления Windows. Откройте Панель управления, щелкните параметры Дата и время и выберите Изменить часовой пояс. В раскрывающемся меню отобразится полный список городов и стран, связанных с каждым часовым поясом.
A-C | D-K | L-R | S-Z |
---|---|---|---|
Abu Dhabi | Darwin | La Paz | Samoa |
Adelaide | Dhaka | Lima | Santiago |
Alaska | Eastern Time (US & Canada) | Lisbon | Sapporo |
Amsterdam | Edinburgh | Ljubljana | Sarajevo |
Arizona | Ekaterinburg | London | Saskatchewan |
Astana | Fiji | Madrid | Seoul |
Athens | Georgetown | Magadan | Singapore |
Atlantic Time (Canada) | Greenland | Mazatlan | Skopje |
Auckland | Greenwich Mean Time : Dublin | Melbourne | Sofia |
Azores | Guadalajara | Mexico City | Solomon Is. |
Baghdad | Guam | Mid-Atlantic | Sri Jayawardenepura |
Baku | Hanoi | Minsk | St. Petersburg |
Bangkok | Harare | Monrovia | Stockholm |
Beijing | Hawaii | Monterrey | Sydney |
Belgrade | Helsinki | Moscow | Taipei |
Berlin | Hobart | Mountain Time (US & Canada) | Tallinn |
Bern | Hong Kong | Mumbai | Tashkent |
Bogota | Indiana (East) | Muscat | Tbilisi |
Brasilia | International Date Line West | Nairobi | Tehran |
Bratislava | Irkutsk | New Caledonia | Tokyo |
Brisbane | Islamabad | New Delhi | Urumqi |
Brussels | Istanbul | Newfoundland | Warsaw |
Bucharest | Jakarta | Novosibirsk | Wellington |
Budapest | Jerusalem | Nuku'alofa | West Central Africa |
Buenos Aires | Kabul | Osaka | Vienna |
Cairo | Kamchatka | Pacific Time (US & Canada) | Vilnius |
Canberra | Karachi | Paris | Vladivostok |
Cape Verde Is. | Kathmandu | Perth | Volgograd |
Caracas | Kolkata | Port Moresby | Yakutsk |
Casablanca | Krasnoyarsk | Prague | Yerevan |
Central America | Kuala Lumpur | Pretoria | Zagreb |
Central Time (US & Canada) | Kuwait | Quito | - |
Chennai | Kyiv | Riga | - |
Chihuahua | - | Riyadh | - |
Chongqing | - | Rome | - |
Copenhagen | - | - | - |
Пример | Результат |
---|---|
ConvertToLocalTime('2023-08-14 08:39:47','Paris') |
Возвращает «2023-08-14 10:39:47» и соответствующее внутреннее представление метки времени. |
ConvertToLocalTime(UTC(), 'Stockholm') | Возвращает время для Стокгольма с учетом перехода на летнее время. |
ConvertToLocalTime(UTC(), 'Stockholm', -1) | Возвращает время для Стокгольма без учета перехода на летнее время. |
ConvertToLocalTime(UTC(), 'GMT-05:00') | Возвращает время для североамериканского восточного побережья, например Нью-Йорка. Не выполняется корректировка с учетом перехода на летнее время, так как задано смещение GMT (относительно времени по Гринвичу), а не город. |
ConvertToLocalTime(UTC(), 'New York', -1) | Возвращает время для североамериканского восточного побережья (Нью-Йорк), без учета перехода на летнее время. |
ConvertToLocalTime(UTC(), 'New York', True()) | Возвращает время для североамериканского восточного побережья (Нью-Йорк), без учета перехода на летнее время. |
ConvertToLocalTime(UTC(), 'New York', 0) | Возвращает время для североамериканского восточного побережья (Нью-Йорк), с учетом перехода на летнее время. |
ConvertToLocalTime(UTC(), 'New York', False()) | Возвращает время для североамериканского восточного побережья (Нью-Йорк), с учетом перехода на летнее время. |
Использование смещения относительно времени по Гринвичу в сочетании с данными о переходе на летнее время
После внедрения библиотек ICU (International Components for Unicode ― Международные компоненты Юникод) в QlikView в ноябре 2018 года для использования смещения GMT (относительно среднего времени по Гринвичу) вместе с DST (переход на летнее время) требуется дополнительная информация о широте.
GMT ― это смещение по долготе (с востока на запад), а DST ― это смещение по широте (с севера на юг). Например, для Хельсинки (Финляндия) и Йоханнесбурга (ЮАР) используется одно и то же смещение GMT+02:00, но смещение DST у них разное. Таким образом, чтобы в дополнение к смещению GMT применить смещение DST, требуется информация о положении местного часового пояса по широте (географические координаты часового пояса), которая позволяет составить полную картину о местных условиях DST.