Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       tzset, tzname, timezone, daylight - инициализирует информацию о преобразованиях времени

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <time.h>

       void tzset(void);

       extern char *tzname[2];
       extern long timezone;
       extern int daylight;

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       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 определяется момент
       перехода обратно на поясное время. Эти поля могут быть представлены в следующих форматах:

       Jn     Номер n — это день по Юлианскому календарю  (от  1  до  365).  Високосный  день  не
              учитывается. В этом формате 29 февраля не может быть представлено; 28 февраля — это
              59 день, а 1 марта всегда 60 день.

       n      Номер n — это день по Юлианскому календарю (от 1 до 365). 29 февраля  в  високосном
              году учитывается.

       Mm.w.d Номер  d  —  это день (0 <= d <= 6) в неделе w (1 <= w <= 5)  и месяце m (1 <= m <=
              12). Неделя номер 1 — это первая неделя, в которой есть день d, а неделя номер 5  —
              это последняя неделя, в которой есть день d. День номер 0 — это воскресенье.

       В  поле  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"

ОКРУЖЕНИЕ

       TZ     Если  эта  переменная  установлена,  то её значение имеет приоритет над настроенным
              системным часовым поясом.

       TZDIR  Если эта переменная установлена, то её значение  имеет  приоритет  над  путём  базы
              данных системных часовых поясов.

ФАЙЛЫ

       /etc/localtime
              Файл системного часового пояса.

       /usr/share/zoneinfo/
              Системный каталог базы данных часовых поясов.

       /usr/share/zoneinfo/posixrules
              Когда  строка  TZ  содержит  часовой  пояс  dst  и больше ничего, то из этого файла
              берутся начальные/конечные правила. Его формат совпадает с tzfile(5). По  умолчанию
              Makefile из zoneinfo создаёт его как жёсткую ссылку на tz-файл America/New_York.

       Показанные  файлы  выше  —  текущие  стандартные  расположения  файлов,  но они могут быть
       изменены при компиляции 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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.