43.6 Правила часовых поясов

По умолчанию часовой пояс определяется переменной окружения TZ. См. Среда операционной системы. Например, вы можете указать Emacs использовать Всемирное время по умолчанию с помощью (setenv "TZ" "UTC0"). Если TZ не задана в окружении, Emacs использует системное время реального времени, которое является часовым поясом по умолчанию, зависящим от платформы.

Набор поддерживаемых строк TZ зависит от системы. GNU и многие другие системы поддерживают часовые пояса TZDB, например, "America/New_York" указывает часовой пояс и историю перехода на летнее время для мест вблизи Нью-Йорка. GNU и большинство других систем поддерживают строки TZ в стиле POSIX, например, "EST5EDT,M4.1.0,M10.5.0", которые указывают правила, используемые в Нью-Йорке с 1987 по 2006 год. Все системы поддерживают строку "UTC0", что означает Всемирное время.

Функции, которые преобразуют в локальное время и из него, принимают необязательный аргумент правило часового пояса, который указывает часовой пояс и историю перехода на летнее время для преобразования. Если правило часового пояса опускается или равно nil, преобразование использует часовой пояс по умолчанию Emacs. Если оно равно t, преобразование использует Всемирное время. Если оно равно wall, преобразование использует системное время реального времени. Если это строка, преобразование использует правило часового пояса, эквивалентное установке TZ в эту строку. Если это список (offset abbr), где offset — целое число секунд на восток от Всемирного времени, а abbr — строка, преобразование использует фиксированный часовой пояс с заданным смещением и сокращением. Целое число offset рассматривается как (offset abbr), где abbr — числовое сокращение на платформах, совместимых с POSIX, и не указано в MS-Windows.

Функция: current-time-zone &необязательный часовой пояс

Эта функция возвращает список, описывающий часовой пояс пользователя.

Значение имеет вид (offset abbr). Здесь offset — целое число, указывающее количество секунд впереди Всемирного времени (на восток от Гринвича). Отрицательное значение означает западнее Гринвича. Второй элемент, abbr, — это строка, дающая сокращение для часового пояса, например, "CST" для Китайского стандартного времени или для Центрального стандартного времени США. Оба элемента могут измениться, когда начинается или заканчивается переход на летнее время; если пользователь указал часовой пояс, который не использует сезонную корректировку времени, то значение остается постоянным со временем.

Если операционная система не предоставляет всей информации, необходимой для вычисления значения, неизвестные элементы списка равны nil.

Аргумент time, если он задан, указывает значение времени для анализа вместо текущего времени. Необязательный аргумент zone по умолчанию использует текущее правило часового пояса. Операционная система ограничивает диапазон значений времени и часового пояса.