Python time è un modulo che permette di ottenere in­for­ma­zio­ni relative al tempo in questo lin­guag­gio di pro­gram­ma­zio­ne. Il modulo offre numerose funzioni e utilizza l’in­di­ca­zio­ne temporale Unix e gli oggetti struct_time.

Che cos’è Python time e come si utilizza questo modulo?

Il modulo Python time è fon­da­men­ta­le per im­ple­men­ta­re e tenere conto delle in­for­ma­zio­ni relative al tempo in questo lin­guag­gio di pro­gram­ma­zio­ne. Tra le attività che possono essere eseguite da questo modulo vi sono la vi­sua­liz­za­zio­ne dell’ora corrente, la for­mat­ta­zio­ne delle in­for­ma­zio­ni relative al tempo e l’in­di­ca­zio­ne di una durata specifica nel corso dell’ese­cu­zio­ne di una funzione. Per uti­liz­za­re il modulo, è ne­ces­sa­rio prima importare Python time con la seguente parola chiave:

import time
python

Suc­ces­si­va­men­te puoi uti­liz­za­re diverse funzioni del modulo. Nelle parti seguenti ti mostriamo le più im­por­tan­ti. Se sei alla ricerca di un’al­ter­na­ti­va a Python time, Python datetime è una buona soluzione.

Managed Nextcloud di IONOS Cloud
Lavora con il tuo team sul cloud
  • Massima sicurezza dei tuoi dati
  • Strumenti di col­la­bo­ra­zio­ne per lavorare in team
  • Ag­gior­na­men­ti au­to­ma­ti­ci

time.time() e il si­gni­fi­ca­to della marca temporale di Unix

Alla base della funzione time.time() vi è la marca temporale di Unix. Essa descrive un momento preciso nel passato a partire dal quale viene misurato il tempo in un sistema. Per Windows e molti sistemi Unix questo istante è il 1º gennaio 1970, alle ore 00:00:00 (tempo coor­di­na­to uni­ver­sa­le). Anche Python si basa su questo momento. In al­ter­na­ti­va, il calcolo a partire da questo secondo preciso è detto anche “tempo trascorso dall’epoca”. La funzione time.time() fornisce il numero di secondi trascorsi a partire da quell’istante all’inizio degli anni Settanta. Per farlo, puoi uti­liz­za­re il seguente codice:

import time
tempo_trascorso = time.time()
print("Secondi trascorsi dall'epoca: ", tempo_trascorso)
python

Nel momento in cui stavamo scrivendo questo testo, abbiamo ricevuto questo risultato:

1716816325
python

time.ctime(): come indicare i dati in modo leggibile

Tuttavia, poiché nor­mal­men­te non è possibile fare molto con queste in­for­ma­zio­ni, Python time ti offre la pos­si­bi­li­tà di uti­liz­za­re la marca temporale di Unix come base per l’in­for­ma­zio­ne su una data. In questo modo puoi trarre vantaggio dalla pre­ci­sio­ne di questa mi­su­ra­zio­ne del tempo e ottenere la marca temporale in un formato com­pren­si­bi­le. La funzione da usare a tal fine è time.ctime(), che converte la marca temporale di Unix di­ret­ta­men­te in una data. Il codice da uti­liz­za­re è il seguente:

import time
tempo_trascorso = 1716816325
tempo_corrente = time.ctime(tempo_trascorso)
print("La data e l'ora correnti sono: ", tempo_corrente)
python

L’output che otteniamo si presenta così e tiene conto dell’ora locale:

La data e l'ora correnti sono: Mon May 27 2024 15:25:25
python
Consiglio

La soluzione ideale per lavorare con il tuo progetto web: con Deploy Now di IONOS puoi im­ple­men­ta­re modifiche del codice di­ret­ta­men­te con GitHub e trarre vantaggio dall’adat­ta­men­to in tempo reale. Vieni a scoprire il piano più adatto alle tue esigenze!

time.sleep(): pia­ni­fi­ca­zio­ne dell’ese­cu­zio­ne di un programma

Il modulo Python time offre comunque molte più pos­si­bi­li­tà rispetto alla semplice in­di­ca­zio­ne della data e dell’ora correnti. Ad esempio, è uti­liz­za­to anche per gestire o ritardare l’ese­cu­zio­ne di un programma. La funzione per farlo è time.sleep() e la sua sintassi è la seguente:

import time
print("Questo testo viene mostrato subito… ")
time.sleep(5)
print("…e questo invece dopo 5 secondi.")
python

L’output che otteniamo è il seguente:

Questo testo viene mostrato subito…
…e questo invece dopo 5 secondi.
python

La seconda parte viene vi­sua­liz­za­ta solo dopo un ritardo di cinque secondi. Se desideri conoscere in dettaglio le pos­si­bi­li­tà di ap­pli­ca­zio­ne di Python time.sleep(), leggi i nostri consigli nella Digital Guide.

Oggetti struct_time per Python time

Per molte funzioni di Python time è fon­da­men­ta­le usare l’oggetto struct_time. È uti­liz­za­to prin­ci­pal­men­te come parametro o valore re­sti­tui­to e fornisce una tupla il cui valore può essere spe­ci­fi­ca­to tramite l’indice o l’attributo. A tal fine è possibile uti­liz­za­re i seguenti attributi:

Indice Attributo De­scri­zio­ne Possibili valori
0 tm_year Numero dell’anno 0000, …, 2024, …, 9999
1 tm_mon Numero del mese 1, 2, 3, …, 12
2 tm_mday Giorno preciso del mese 1, 2, 3, 31
3 tm_hour Ore 0, 1, 2, …, 23
4 tm_min Minuti 0, 1, 2, …, 59
5 tm_sec Secondi 0, 1, 2, …, 60, 61
6 tm_wday Giorno della settimana 0 (per lunedì), …, 6 (per domenica)
7 tm_yday Giorno dell’anno 1, 2, 3, …, 366
8 tm_isdst Ora legale o solare 0 (solare), 1 (legale) oppure -1 (non indicato)

time.localtime(): unione di struct_time e del tempo a partire dall’epoca

La funzione time.localtime() utilizza un oggetto struct_time di questo tipo come base per la marca temporale di Unix. Il codice si presenta così:

import time
dato temporale = time.time()
tempo_corrente = time.localtime(informazione temporale)
print(tempo_corrente)
python

In questo modo ottieni il seguente risultato:

time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
python

In al­ter­na­ti­va è anche possibile scegliere un valore a piacere per il parametro localtime(). In tal caso, il codice si presenta così:

import time
dato temporale = time.time()
tempo_corrente = time.localtime(1716816325)
print(tempo_corrente)
python

Il risultato cor­ri­spon­de quindi nuo­va­men­te all’esempio pre­ce­den­te:

time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
python

time.mktime(): l’opposto di localtime()

La funzione time.mktime() in Python time è il contrario di localtime(). In questo caso si utilizza un oggetto struct_time come parametro ed è il sistema a fornirti la marca temporale adatta per il tempo trascorso dall’epoca. Il codice si presenta così:

import time
tempo = time.mktime(local_time)
print(tempo)
python

Come output otteniamo un valore in secondi con il seguente formato:

1716816325
python

time.gmtime(): tempo coor­di­na­to uni­ver­sa­le per la vi­sua­liz­za­zio­ne

time.gmtime() è in gran parte equi­va­len­te a time.localtime(). Tuttavia, in questo caso l’oggetto struct_time cor­ri­spon­den­te viene re­sti­tui­to sotto forma di tempo coor­di­na­to uni­ver­sa­le. Il codice è:

import time
time_stamp = time.time()
tempo_universale = time.gmtime(time_stamp)
stampa(tempo_universale)
python

Con questa funzione time di Python, il risultato dif­fe­ri­sce per alcuni dettagli dall’esempio pre­ce­den­te:

time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=13, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=0)
python

time.asctime(): oggetti struct_time in stringhe

È possibile uti­liz­za­re time.asctime() per con­ver­ti­re un oggetto struct_time in una stringa di Python. Ad esempio, la stringa potrebbe pre­sen­tar­si così:

import time
tempo = time.localtime()
dato_leggibile = time.asctime(tempo)
print(dato_leggibile)
python

In questo modo ottieni un risultato più chiaro:

Mon May 27 15:25:25 2024
python

time.strftime(): creazione di una sequenza di caratteri con Python time

Sono possibili diverse varianti con time.strftime(). A tal fine si uti­liz­za­no codici formato diversi per vi­sua­liz­za­re il tempo corrente nel formato de­si­de­ra­to. L’elenco seguente ti mostra una visione d’insieme dei diversi codici formato più im­por­tan­ti:

  • %Y: rap­pre­sen­ta il numero dell’anno nel formato 0001, …, 2024, …, 9999
  • %m: indica il mese per mezzo dei numeri da 01 (gennaio) a 12 (dicembre)
  • %d: indica il giorno dal 1º al 31 del mese.
  • %H: rap­pre­sen­ta l’ora compresa nell’in­ter­val­lo tra 00 e 23
  • %M: indica i minuti sotto forma di numeri tra 00 e 59
  • %S: mostra i secondi da 00 a 61

All’interno del codice si potrebbe scrivere così:

import time
tempo = time.localtime()
dato_leggibile = time.strftime("%d-%m-%Y, %H:%M:%S", tempo)
print(dato_leggibile)
python

In questo caso, il risultato sarebbe:

27-05-2024, 15:25:25
python

time.strptime(): con­ver­sio­ne di stringhe in oggetti struct_time

Anche per la funzione pre­ce­den­te è di­spo­ni­bi­le una con­tro­par­te in Python time: time.strptime() utilizza una stringa per re­sti­tui­re un oggetto struct_time. Il codice per farlo è il seguente:

import time
tempo = time.strptime(dato_leggibile, "%d-%m-%Y, %H: %M:%S")
print(tempo)
python

Otteniamo quindi di nuovo questo risultato:

time.struct_time(tm_year=2024, tm_mon=5, tm_mday=27, tm_hour=15, tm_min=25, tm_sec=25, tm_wday=0, tm_yday=148, tm_isdst=1)
python
Consiglio

Nella nostra Digital Guide troverai molti altri articoli su questo ap­prez­za­to lin­guag­gio di pro­gram­ma­zio­ne. Ad esempio sono di­spo­ni­bi­li un tutorial su Python, una guida per l’in­stal­la­zio­ne di Python e un vademecum sugli operatori Python.

Vai al menu prin­ci­pa­le