English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, discuteremo in dettaglio del modulo time. Impareremo a utilizzare diverse funzioni correlate al tempo definite nel modulo time attraverso esempi.
Python ha un modulo chiamato time per gestire le operazioni correlate al tempo. Per utilizzare le funzioni definite nel modulo, dobbiamo prima importare il modulo. Ecco come si fa:
import time
Ecco alcune funzioni comuni correlate al tempo.
La funzione time() restituisce il numero di secondi trascorsi dall'era.
Per i sistemi Unix, il 1 gennaio 1970, 00:00:00 è nelUTCÈ l'era (dove inizia il tempo).
import time seconds = time.time() print("Secondi dall'era =", seconds)
time.ctime() restituisce una stringa che rappresenta l'ora locale con il parametro in secondi dall'era.
import time # Secondi trascorsi dall'era seconds = 1545925769.9618232 local_time = time.ctime(seconds) print("Ora locale:", local_time)
Se esegui il programma, l'output sarà simile a:
Ora locale: Gio 27 dic 15:49:29 2018
La funzione sleep() sospende (ritarda) l'esecuzione del thread corrente per il numero di secondi specificati.
import time print("Questo viene stampato immediatamente.") time.sleep(2.4) print("Questo viene stampato 2.4 secondi dopo.")
Per ulteriori informazioni, visitare:sleep() in Python.
Prima di discutere di altre funzioni correlate al tempo, esploriamo brevemente la classe time.struct_time.
Alcuni funzioni del modulo time (ad esempio, gmtime(), asctime() ecc.) accettano l'oggetto time.struct_time come parametro o lo restituiscono.
Questa è un'istanza di un oggetto time.struct_time.
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
indice | attributo | valore dell'attributo |
---|---|---|
0 | tm_year | 0000, ..., 2018, ..., 9999 |
1 | tm_mon | 1,2,...,12 |
2 | tm_mday | 1,2,...,31 |
3 | tm_hour | 0,1,...,23 |
4 | tm_min | 0,1,...,59 |
5 | tm_sec | 0,1,...,61 |
6 | tm_wday | 0, 1, ..., 6; Monday è 0 |
7 | tm_yday | 1, 2, ..., 366 |
8 | tm_isdst | 0、1 o -1 |
È possibile accedere ai valori dell'oggetto time.struct_time utilizzando l'indice e le proprietà (elementi).
La funzione localtime() riceve come parametro il numero di secondi trascorsi dall'epoch e restituisce un oggetto di tipo struct_time.localtimeritorna un oggetto struct_time.
import time result = time.localtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
Quando si esegue il programma, l'output sarà simile a:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) year: 2018 tm_hour: 15
Se non viene passato alcun parametro o None a localtime(), time() utilizza il valore di ritorno.
La funzione gmtime() riceve come parametro il numero di secondi trascorsi dall'epoch e restituisce un oggetto di tipo struct_time.UTCritorna.
import time result = time.gmtime(1545925769) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour)
Quando si esegue questo programma, l'output è:
result = time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0) year = 2018 tm_hour = 8
Se non viene passato alcun parametro o None a gmtime(), time() restituisce il valore di ritorno.
La funzione mktime() accetta come parametro struct_time (o un tuple contenente 9 elementi corrispondenti a struct_time) e restituisce il numero di secondi trascorsi dall'epoch locale. In pratica, è l'opposto di localtime().
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) local_time = time.mktime(t) print("Ora locale:", local_time)
Esempio seguente che mostra la relazione tra mktime() e localtime()
import time seconds = 1545925769 # restituisce struct_time t = time.localtime(seconds) print("t1: ", t) # restituisce secondi da struct_time s = time.mktime(t) print("\s:", seconds)
Quando si esegue il programma, l'output sarà simile a:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
La funzione asctime() accetta come parametro struct_time (o un tuple contenente 9 elementi corrispondenti a struct_time) e restituisce una stringa che rappresenta la struttura. Ecco un esempio:
import time t = (2018, 12, 28, 8, 44, 4, 4, 362, 0) result = time.asctime(t) print("Risultato:", result)
Quando si esegue questo programma, l'output è:
Risultato: Mer 28 dic 08:44:04 2018
La funzione strftime() accetta come parametro struct_time (o il suo tuple corrispondente) e restituisce una stringa che rappresenta esso, basandosi sui codici di formato utilizzati. Ad esempio,
import time named_tuple = time.localtime() # get struct_time time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple) print(time_string)
Quando si esegue il programma, l'output sarà simile a:
12/28/2018, 09:47:41
Qui %Y, %m, %d, %H sono codici di formato.
%Y - anni [0001, ..., 2018, 2019, ..., 9999]
%m - mesi [01, 02, ..., 11, 12]
%d - giorni [01, 02, ..., 30, 31]
%H - ore [00, 01, ..., 22, 23
%M - minuti [00, 01, ..., 58, 59]
%S - secondi [00, 01, ..., 58, 61]
Per ulteriori informazioni, visitare:time.strftime().
La funzione strptime() analizza la stringa che rappresenta l'ora e restituisce struct_time.
import time time_string = "21 June, 2018" result = time.strptime(time_string, "%d %B, %Y") print(result)
Quando si esegue questo programma, l'output è:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)