English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di Python

Controllo di flusso di Python

Funzione in Python

Tipi di dati in Python

Operazioni di file di Python

Oggetti e classi di Python

Data e ora di Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Modulo time in Python

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.

Python time.time()

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)

Python time.ctime()

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

Python time.sleep()

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.

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
attributovalore dell'attributo
0tm_year0000, ..., 2018, ..., 9999
1tm_mon1,2,...,12
2tm_mday1,2,...,31
3tm_hour0,1,...,23
4tm_min0,1,...,59
5tm_sec0,1,...,61
6tm_wday0, 1, ..., 6; Monday è 0
7tm_yday1, 2, ..., 366
8tm_isdst0、1 o -1

È possibile accedere ai valori dell'oggetto time.struct_time utilizzando l'indice e le proprietà (elementi).

Python time.localtime()

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.

Python time.gmtime()

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.

Python time.mktime()

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

Python time.asctime()

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

Python time.strftime()

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().

Python time.strptime()

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)