Questo modulo fornisce varie funzioni relative al tempo. È sempre disponibile, ma non tutte le funzioni sono disponibili su tutte le piattaforme. La maggior parte delle funzioni definite in questo modulo chiamano le funzioni della libreria C della piattaforma con lo stesso nome. Qualche volta può essere utile consultare la documentazione della piattaforma specifica, poiché la semantica di queste funzioni varia tra le piattaforme.
Una spiegazione di alcune terminologie e convenzioni viene riportata di seguito:
gmtime(0)
.
accept2dyear
è un
intero diverso da zero; questa variabile viene inizializzata a
1
, a meno che la variabile d'ambiente PYTHONY2K non sia
stata impostata ad una stringa non vuota, nel qual caso viene
inizializzata a 0
. Perciò potete impostare PYTHONY2K ad
una stringa non vuota nell'ambiente, per fare in modo che venga
richiesto per tutti gli input un anno di 4 cifre.
Quando vengono accettati anni con 2 cifre, questi vengono convertiti
secondo gli standard POSIX o X/Open: i valori 69-99 vengono mappati
a 1969-1999, e i valori 0-68 vengono mappati a 2000-2068. I valori
100-1899 sono sempre non accettabili. Notate che questa è una novità
introdotta in Python 1.5.2(a2); le versioni precedenti, fino a Python
1.5.1 e 1.5.2a1, avrebbero aggiunto 1900 ai valori di anno inferiori a
1900.
Indice | Attributo | Valore |
---|---|---|
0 |
tm_year | (per esempio, 1993) |
1 |
tm_mon | intervallo [1,12] |
2 |
tm_mday | intervallo [1,31] |
3 |
tm_hour | intervallo [0,23] |
4 |
tm_min | intervallo [0,59] |
5 |
tm_sec | intervallo [0,61]; vedete (1) nella descrizione di strftime() |
6 |
tm_wday | intervallo [0,6], Lunedì è 0 |
7 |
tm_yday | intervallo [1,366] |
8 |
tm_isdst | 0, 1 or -1; vedete sotto |
Notate che diversamente dalla struttura C, il valore del mese viene
compreso nell'intervallo 1-12, non 0-11. Un valore per l'anno verrà
gestito come descritto sopra, in ``Problema dell'anno 2000 (Y2K)''.
Un argomento -1
come opzione per l'ora legale, passato a
mktime() generalmente genererà il corretto stato per l'ora
legale da inserire.
Quando una tupla di lunghezza non corretta viene passata ad una funzione che si aspetta uno struct_time, o quando sono presenti alcuni elementi del tipo errato, viene sollevata un'eccezione TypeError.
Modificato nella versione 2.2: La sequenza dei valori del tempo è stata cambiata da una tupla in una classe struct_time, con l'aggiunta dei nomi degli attributi per i campi..
Il modulo definisce i seguenti elementi di funzioni e dati:
daylight
è non nullo.
[t]) |
'Sun Jun 20 23:21:05 1993'
. Se t non viene
fornito, viene utilizzato il tempo corrente restituito da
localtime(). Le informazioni sulla localizzazione non
vengono utilizzate da asctime().
Note:
Diversamente dalla funzione C con lo stesso nome, non c'è qui un
carattere di fine riga.
Modificato nella versione 2.1:
È consentito omettere t.
) |
Su Windows, questa funzione restituisce il tempo, in secondi, trascorso dalla prima chiamata a questa funzione, come un numero in virgola mobile, basato sulla funzione Win32 QueryPerformanceCounter(). La risoluzione tipicamente è migliore di un microsecondo.
[secs]) |
ctime(secs)
è equivalente a
asctime(localtime(secs))
. Le informazioni sulla
localizzazione non vengono utilizzate da ctime().
Modificato nella versione 2.1:
È consentito omettere secs.
[secs]) |
[secs]) |
1
quando DST viene si applica al tempo
corrente.
Modificato nella versione 2.1:
È consentito omettere secs.
t) |
-1
come valore
per l'opzione dst se questa non è nota) che esprimone il tempo
nel formato locale, non UTC. Restituisce un numero in virgola
mobile, per compatibilità con time(). Se l'input non può
venire rappresentato come un tempo valido, possono venire sollevate le
eccezioni OverflowError o ValueError (quale
delle due dipende da chi intercetta prima il valore errato, se Python o
la libreria C sottostante). La data generabile più indietro nel temp
dipende dalla piattaforma.
secs) |
format[, t]) |
Le seguenti direttive possono venire inserite nella stringa format. Vengono mostrate senza specificare il campo facoltativo di ampiezza e precisione, e vengono sostituite dai caratteri indicati nel risultato di strftime().
Direttiva | Significato | Note |
---|---|---|
%a |
Nome abbreviato del giorno della settimana, secondo il locale corrente. | |
%A |
Nome completo del giorno delle settimana, secondo il locale corrente. | |
%b |
Nome abbreviato del mese, secondo il locale corrente. | |
%B |
Nome completo del mese, secondo il locale corrente. | |
%c |
Rappresentazione appropriata della data e dell'ora correnti, secondo il locale corrente. | |
%d |
Giorno del mese, come numero decimale [01,31]. | |
%H |
Ora (orologio a 24 ore) come numero decimale [00,23]. | |
%I |
Ora (orologio a 12 ore) come numero decimale [01,12]. | |
%j |
Giorno del'anno come numero decimale [001,366]. | |
%m |
Mese come numero decimale [01,12]. | |
%M |
Minuto come numero decimale [00,59]. | |
%p |
Equivalente di AM o PM, secondo il locale corrente. | (1) |
%S |
Secondo come numero decimale [00,61]. | (2) |
%U |
Numero della settimana dell'anno (Domenica come primo giorno della settimana) come numero decimale [00,53]. Tutti i giorni di un nuovo anno precedendi la prima Domenica vengono considerati come appartenenti alla settimana 0. | |
%w |
Giorno della settimana come numero decimale [0(Domenica),6]. | |
%W |
Numero della settimana dell'anno (Lunedì come primo giorno della settimana) come numero decimale [00,53]. Tutti i giorni di un nuovo anno precedendi il primo Lunedì vengono considerati come appartenenti alla settimana 0. | |
%x |
Rappresentazione della data appropriata secondo il locale corrente. | |
%X |
Rappresentazione dell'ora appropriata secondo il locale corrente. | |
%y |
Anno senza il secolo come numero decimale [00,99]. | |
%Y |
Anno con il secolo come numero decimale. | |
%Z |
Nome del fuso oraio (nessun carattere se non esiste un fuso orario). | |
%% |
Un carattere costante "%". |
Note:
%p
influisce solo l'output del campo dell'ora, se la
direttiva %I
viene usata per analizzare l'ora.
0
a 61
; questo spiega gli
sbalzi di secondi e i (molto rari) doppi sbalzi di secondi.
Ecco un esempio, un formato per le date compatibile con quello specificato nella RFC 2822 Internet Email Standard. 6.1
>>> from time import gmtime, strftime >>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) 'Thu, 28 Jun 2001 14:17:15 +0000'
Ulteriori direttive possono venire supportate su certe piattaforme, ma solo quelle indicate sopra hanno un significato standardizzato dall'ANSI C.
Su alcune piattaforme, uno campo facoltativo, di ampiezza e precisione
specificate, può immediatamente seguire il carattere "%"
iniziale di una direttiva, nell'ordine che segue; anche questo non è
portabile.
L'ampiezza per il campo è normalmente 2, ad eccezione di %j
in cui è 3.
string[, format]) |
"%a %b %d %H:%M:%S %Y"
, che corrisponde al formato
restituito da ctime(). Se string non può essere
analizzata in accordo con format, viene sollevata l'eccezione
ValueError. Se la stringa da analizzare ha dati in
eccesso dopo l'analisi, viene sollevata l'eccezione
ValueError. I valori predefiniti usati per riempire i
dati mancanti sono: (1900, 1, 1, 0, 0, 0, 0, 1, -1)
.
Il supporto per la direttiva %Z
si basa sui valori contenuti
in tzname
, e sul fatto che il valore di daylight
risulti
vero o meno. Per questo motivo, risulta dipendente dalla piattaforma, ad
eccezione del riconoscimento di UTC e GMT che sono sempre noti (e
vengono considerati fusi orari senza ora legale).
) |
) |
Disponibilità: Unix.
La variabile d'ambiente TZ non dovrebbe contenere spazi vuoti.
Il formato standard per la variabile d'ambiente TZ è (gli spazi vengono aggiunti per chiarezza):
Dove:
time ha lo stesso formato di offset ad eccezione del fatto che il segno ('-' o '+') non è ammesso. Il valore predefinito, se non viene passata nessuna ora, è 02:00:00.
>>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0' >>> time.tzset() >>> time.strftime('%X %x %Z') '02:07:36 05/08/03 EDT' >>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0' >>> time.tzset() >>> time.strftime('%X %x %Z') '16:08:12 05/08/03 AEST'
Su molti sistemi Unix (inclusi *BSD, Linux, Solaris e Darwin), è più
conveniente usare il database di sistema zoneinfo
(tzfile(5)) per specificare tutte le regole di fuso orario.
Per fare questo, impostate la variabile d'ambiente TZ al
percorso del file riferito al fuso orario richiesto, relativamente alla
radice del database di sistema di 'zoneinfo', generalmente posto in
/usr/share/zoneinfo. Per esempio, 'US/Eastern'
,
'Australia/Melbourne'
, 'Egypt'
o
'Europe/Amsterdam'
.
>>> os.environ['TZ'] = 'US/Eastern' >>> time.tzset() >>> time.tzname ('EST', 'EDT') >>> os.environ['TZ'] = 'Egypt' >>> time.tzset() >>> time.tzname ('EET', 'EEST')
Vedete anche:
%Z
viene adesso deprecato, ma
l'escape %z
che espande la distanza oraria ore/minuti
preferita non viene supportato da tutte le librerie ANSI C.
Inoltre, una lettura rigorosa dell'originale standard
RFC 822 del 1992 richiede un anno di 2 cifre (%y invece
che %Y), ma per pratica l'anno di 4 cifre è stato adottato
prima dell'anno 2000. L'anno a 4 cifre è stato ufficializzato
dalla RFC 2822, che ha reso obsoleta la RFC 822.