tzset(3) Library Functions Manual tzset(3)

tzset, tzname, timezone, daylight - inițializează informațiile de conversie a orei

Biblioteca C standard (libc, -lc)

#include <time.h>
void tzset(void);
extern char *tzname[2];
extern long timezone;
extern int daylight;
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați 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

Funcția tzset() inițializează variabila tzname din variabila de mediu TZ. Această funcție este apelată automat de către celelalte funcții de conversie a orei care depind de fusul orar. Într-un mediu de tip System-V, aceasta va defini, de asemenea, variabilele timezone (secunde la vest de UTC) și daylight (la 0 dacă în acest fus orar nu există reguli privind ora de vară sau la valoarea diferită de zero dacă există un moment, trecut, prezent sau viitor, în care se aplică ora de vară).

În cazul în care variabila TZ nu apare în mediu, se utilizează fusul orar al sistemului. Fusul orar al sistemului se configurează prin copierea, sau legarea unui fișier în format tzfile(5) în /etc/localtime. O bază de date a fuselor orare din aceste fișiere poate fi localizată în directorul de fus orar al sistemului (a se vedea secțiunea FIȘIERE de mai jos).

În cazul în care variabila TZ apare în mediu, dar valoarea sa este goală sau valoarea sa nu poate fi interpretată folosind oricare dintre formatele specificate mai jos, se utilizează timpul universal coordonat („Coordinated Universal Time”: UTC).

Valoarea lui TZ poate avea unul dintre două formate. Primul format este un șir de caractere care reprezintă direct fusul orar care urmează să fie utilizat:


std decalaj[dst[decalaj][,început[/time],sfârșit[/time]]]

Specificația nu conține spații. Șirul std specifică o abreviere pentru fusul orar și trebuie să fie format din trei sau mai multe caractere alfabetice. Atunci când este cuprins între semnele mai mic decât (<) și mai mare decât (>), setul de caractere este extins pentru a include semnul plus (+), semnul minus (-) și cifrele. Șirul decalaj urmează imediat după std și specifică valoarea timpului care trebuie adăugată la ora locală pentru a obține timpul universal coordonat (UTC). decalaj este pozitiv dacă fusul orar local se află la vest de meridianul de origine și negativ dacă se află la est. Ora trebuie să fie cuprinsă între 0 și 24, iar minutele și secundele între 00 și 59:


[+|-]hh[:mm[:ss]]

Șirul dst și decalaj specifică numele și decalajul pentru fusul orar de vară corespunzător. În cazul în care decalajul este omis, acesta este implicit cu o oră înainte de ora standard.

Câmpul început specifică momentul în care intră în vigoare ora de vară, iar câmpul sfârșit specifică momentul în care se revine la ora standard. Aceste câmpuri pot avea următoarele formate:

Aceasta specifică ziua iuliană cu n între 1 și 365. Zilele bisecte nu sunt luate în considerare. În acest format, ziua de 29 februarie nu poate fi reprezentată; 28 februarie este ziua 59, iar 1 martie este întotdeauna ziua 60.
Aceasta specifică ziua iuliană bazată pe zero, cu n între 0 și 365. Ziua de 29 februarie este socotită în anii bisecți.
Aceasta specifică ziua z (0 <= z <= 6) a săptămânii s (1 <= s <= 5) a lunii l (1 <= l <= 12). Săptămâna 1 este prima săptămână în care apare ziua z, iar săptămâna 5 este ultima săptămână în care apare ziua z. Ziua 0 este o duminică.

Câmpurile time specifică momentul în care, în ora locală în vigoare, are loc trecerea la cealaltă oră. Dacă se omite, valoarea implicită este 02:00:00.

Iată un exemplu pentru Noua Zeelandă, unde ora standard (NZST) este cu 12 ore înainte de UTC, iar ora de vară (NZDT), cu 13 ore înainte de UTC, se aplică din prima duminică din octombrie până în a treia duminică din martie, iar schimbările au loc la ora implicită de 02:00:00:


TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"

Al doilea format specifică faptul că informațiile privind fusul orar trebuie citite dintr-un fișier:


:[filespec]

În cazul în care specificația de fișier filespec este omisă sau valoarea acesteia nu poate fi interpretată, se utilizează timpul universal coordonat (UTC). Dacă se indică filespec, se specifică un alt fișier în format tzfile(5) din care să se citească informațiile privind fusul orar. Dacă filespec nu începe cu un caracter „/”, specificația fișierului este relativă la directorul de fus orar al sistemului. În cazul în care se omit cele două puncte, se va încerca fiecare dintre formatele TZ de mai sus.

Iată un exemplu, din nou pentru Noua Zeelandă:


TZ=":Pacific/Auckland"

Dacă această variabilă este definită, valoarea ei are prioritate față de fusul orar configurat de sistem.
Dacă această variabilă este definită, valoarea ei are prioritate față de ruta la directorul bazei de date a fusului orar configurat de sistem.

/etc/localtime
Fișierul cu fusul orar al sistemului.
/usr/share/zoneinfo/
Directorul bazei de date cu fusul orar al sistemului.
/usr/share/zoneinfo/posixrules
Atunci când un șir TZ include un fus orar dst fără a fi urmat de nimic, atunci acest fișier este utilizat pentru regulile de început și sfârșit. Acesta este în formatul tzfile(5). În mod prestabilit, fișierul Makefile zoneinfo face o legătură dură cu fișierul tzfile America/New_York.

Cele de mai sus sunt locațiile standard actuale ale fișierelor, dar acestea sunt configurabile atunci când glibc este compilată.

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
tzset() Siguranța firelor MT-Safe env locale

POSIX.1-2008.

POSIX.1-2001, SVr4, 4.3BSD.

4.3BSD avea o funcție char *timezone(zone, dst) care returna numele fusului orar corespunzător primului său argument (minute la vest de UTC). Dacă al doilea argument era 0, se folosea numele standard, în caz contrar se folosea versiunea pentru ora de vară.

date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

2 mai 2024 Pagini de manual de Linux 6.8