tzset(3) | Library Functions Manual | tzset(3) |
tzset, tzname, timezone, daylight - инициализирует информацию о преобразованиях времени
Standard C library (libc, -lc)
#include <time.h>
void tzset(void);
extern char *tzname[2]; extern long timezone; extern int daylight;
tzset():
_POSIX_C_SOURCE
tzname:
_POSIX_C_SOURCE
timezone, daylight:
_XOPEN_SOURCE || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE
The tzset() function initializes the tzname variable from the TZ environment variable. This function is automatically called by the other time conversion functions that depend on the timezone. In a System-V-like environment, it will also set the variables timezone (seconds West of UTC) and daylight (to 0 if this timezone does not have any daylight saving time rules, or to nonzero if there is a time, past, present, or future when daylight saving time applies).
Если переменной TZ в окружении не существует, то используется системный часовой пояс. Системный часовой пояс настраивается копированием или созданием ссылки на файл в формате tzfile(5) в /etc/localtime. База данных часовых поясов с такими файлами может находиться в системном каталоге часовых поясов (смотрите далее раздел ФАЙЛЫ).
Если переменная TZ в окружении существует, но имеет пустое значение или её величина не может быть представлена ни в одном из перечисленных ниже форматов, то используется UTC (Coordinated Universal Time, всемирное координированное время).
Значение TZ может быть представлено в одном из двух форматов. Первый формат — строка символов, которые явно описывают используемый часовой пояс:
std offset[dst[offset][,start[/time],end[/time]]]
There are no spaces in the specification. The std string specifies an abbreviation for the timezone and must be three or more alphabetic characters. When enclosed between the less-than (<) and greater-than (>) signs, the character set is expanded to include the plus (+) sign, the minus (-) sign, and digits. The offset string immediately follows std and specifies the time value to be added to the local time to get Coordinated Universal Time (UTC). The offset is positive if the local timezone is west of the Prime Meridian and negative if it is east. The hour must be between 0 and 24, and the minutes and seconds 00 and 59:
[+|-]чч[:мм[:сс]]
Пробелов быть не должно. Строки dst и offset задают название и смещение соответствующего часового пояса по летнему времени. Если offset не указано, то по умолчанию используется значение на час больше поясного времени.
Полем start определяется начало периода летнего времени, а полем end определяется момент перехода обратно на поясное время. Эти поля могут быть представлены в следующих форматах:
В поле time задаётся, когда по действующему времени наступает переход на другое время. Если не указано, то по умолчанию равно 02:00:00.
Вот пример для Новой Зеландии, где поясное (standard) время (NZST) на 12 часов опережает UTC, а летнее (daylight saving) время (NZDT) на 13 часов опережает UTC, которое действует с первого воскресенья октября по третье воскресенье марта, и меняется обратно в 02:00:00 (как значение по умолчанию):
TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
Второй формат используется, если информация о часовом поясе должна быть получена из файла:
:[filespec]
If the file specification filespec is omitted, or its value cannot be interpreted, then Coordinated Universal Time (UTC) is used. If filespec is given, it specifies another tzfile(5)-format file to read the timezone information from. If filespec does not begin with a '/', the file specification is relative to the system timezone directory. If the colon is omitted each of the above TZ formats will be tried.
Вот ещё один пример для Новой Зеландии:
TZ=":Pacific/Auckland"
Показанные файлы выше — текущие стандартные расположения файлов, но они могут быть изменены при компиляции glibc.
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
tzset() | Безвредность в нитях | MT-Safe env locale |
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
В 4.3BSD имелась функция char *timezone(zone, dst), которая возвращала имя часового пояса, соответствующее первому аргументу (минуты западнее UTC). Если второй аргумент равнялся 0, то использовалось поясное имя, иначе использовалась версия для летнего времени.
date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5)
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
5 февраля 2023 г. | Linux man-pages 6.03 |