tzset(3) | Library Functions Manual | tzset(3) |
NUME
tzset, tzname, timezone, daylight - inițializează informațiile de conversie a orei
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#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
DESCRIERE
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ă).
Funcția tzset() inițializează aceste variabile la valori nespecificate dacă acest fus orar este un fus orar geografic precum "America/New_York" (a se vedea mai jos).
Î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).
O valoare nevidă a lui TZ poate avea unul dintre cele două formate, oricare dintre acestea putând fi precedat de două puncte, care sunt ignorate. 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:
- Jn
- 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.
- n
- Aceasta specifică ziua iuliană bazată pe zero, cu n între 0 și 365. Ziua de 29 februarie este socotită în anii bisecți.
- Ml.s.z
- 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ă. Acestea utilizează același format ca și decalaj, cu excepția faptului că ora poate fi în intervalul [-167, 167] pentru a reprezenta momente înainte și după ziua numită. 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 ultima duminică din septembrie până în prima duminică din aprilie, iar schimbările au loc la ora implicită de 03:00:00:
TZ="NZST-12:00:00NZDT-13:00:00,M9.5.0,M4.1.0/3"
Al doilea format - sau „geografic” - specifică faptul că informațiile privind fusul orar ar trebui să fie citite dintr-un fișier:
filespec
filespec specifică un 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. Dacă fișierul specificat nu poate fi citit sau interpretat, se utilizează timpul universal coordonat (UTC); cu toate acestea, aplicațiile nu trebuie să depindă de valorile aleatorii filespec care reprezintă UTC, deoarece formatele TZ pot fi extinse în viitor.
Iată un exemplu, din nou pentru Noua Zeelandă:
TZ="Pacific/Auckland"
MEDIU
FIȘIERE
- /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ă.
ATRIBUTE
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 |
STANDARDE
POSIX.1-2024.
ISTORIC
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ă.
PRECAUȚII
Deoarece valorile tzname, timezone și daylight sunt adesea nespecificate, iar accesarea lor poate duce la un comportament nedefinit în aplicațiile cu mai multe fire de execuție, codul ar trebui să obțină în schimb decalajul fusului orar și abrevierile din membrii tm_gmtoff și tm_zone ai structurii temporale defalcate tm(3type).
CONSULTAȚI ȘI
date(1), gettimeofday(2), time(2), ctime(3), getenv(3), tzfile(5)
TRADUCERE
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.
12 iunie 2024 | Pagini de manual de Linux 6.9.1 |