HOWTO · Python

Come ottenere l'ora corrente in Python

Elenca i metodi per ottenere l'ora corrente in Python

In questa pagina

Potremmo usare due moduli per ottenere l’ora corrente in Python, che sono datetime e time.

Modulo datetime per ottenere l’ora corrente in Python

>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2018, 7, 17, 22, 48, 16, 222169)

Restituisce l’oggetto datetime che include le informazioni sulla data e l’ora, compresi anno, mese, giorno e ora.

Se si preferisce un formato string, allora si può usare un metodo strftime per convertire l’istanza dell’oggetto datetime in un formato stringa come definito nell’argomento.

>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2018-07-17 22:54:25'

Di seguito è riportato il frammento di direttive nella stringa del formato strftime.

Direttiva Significato
%d Giorno del mese come numero decimale [01,31].
%H Ora (orologio 24 ore) come numero decimale [00,23].
%m Mese come numero decimale [01,12].
%M Minuto come numero decimale [00,59].
%S Secondo come numero decimale [00,61].
%Y Anno con il secolo come numero decimale.

Solo ora corrente senza data

>>> from datetime import datetime
>>> datetime.now().time()
datetime.time(23, 4, 0, 13713)

Modulo time per ottenere l’ora corrente in Python

time.strftime per ottenere l’ora corrente in Python

import time

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
"2018-07-17 21:06:40"
Attenzione
Come indica il nome, time.localtime() restituisce l’ora locale del proprio fuso orario. Se si preferisce l’ora UTC, allora time.gmtime() è la scelta giusta.

time.ctime per ottenere l’ora corrente in Python

import time

time.ctime()
"Tue Oct 29 11:21:51 2019"

Il risultato è che “l’ora” è più facile da visualizzare nella GUI o da stampare nella console. Potrebbe anche essere diviso per ottenere il giorno della settimana, il mese, il giorno, l’ora e l’anno.

>>> import time
>>> A = time.ctime()
>>> A = A.split()
>>> A
['Tue', 'Oct', '29', '12:38:44', '2019']
Attenzione
Siate consapevoli che time.ctime() è dipendente dal sistema operativo, o in altre parole, potrebbe cambiare se il sistema operativo è diverso. Non aspettatevi che sia standard tra i diversi sistemi operativi.
Questo metodo non è buono per la registrazione.