Python DataOra, OraDelta, Strftime(Formato) con esempi
โก Riepilogo intelligente
Python La classe datetime, insieme alle classi date, time e timedelta, gestisce date, orari e intervalli come oggetti. Il modulo datetime formatta l'output con strftime(), analizza le stringhe e calcola momenti futuri o passati utilizzando l'aritmetica timedelta.

In Python, data, ora e dataora Le classi forniscono una serie di funzioni per gestire date, orari e intervalli di tempo. Data e data/ora in Python Sono oggetti, quindi quando li manipoli, stai effettivamente manipolando oggetti e non stringhe o timestamp. Ogni volta che manipoli date o orari, devi importare il modulo datetime.
Le classi datetime in Python sono suddivisi in 5 classi principali.
- date โ Manipola solo la data (mese, giorno, anno)
- time โ Ora indipendente dal giorno (Ore, minuti, secondi, microsecondi)
- datetime โ Combinazione di ora e data (mese, giorno, anno, ora, secondo, microsecondo)
- timedelta: durata di tempo utilizzata per manipolare le date
- tzinfoโ Un abstracclasse t per la gestione dei fusi orari
Come utilizzare la classe Date e DateTime
Fase 1) Prima di eseguire il codice per il formato datetime in Python, รจ importante importare il file Python moduli data/ora come mostrato nello screenshot qui sotto.
Queste istruzioni di importazione sono parti di funzionalitร predefinite nel file Python libreria che permette di manipolare date e orari senza scrivere codice.
Considerare i seguenti punti prima di eseguire l' Python codice del formato data/ora
from datetime import date
Questa riga dice il Python interprete per importare la classe data dal modulo datetime in PythonNon stiamo scrivendo il codice per questa funzionalitร relativa alle date, ma ci limitiamo a importarla per il nostro utilizzo.
Stampa la data utilizzando date.today()
La funzione date.today() ha diverse proprietร associate. Possiamo stampare il singolo giorno/mese/anno e molte altre informazioni.
Vediamo un esempio
Numero del giorno feriale di oggi
La funzione date.today() ti dร anche il numero del giorno della settimana. Ecco la tabella dei giorni della settimana che inizia con Monday come 0 e domenica come 6.
| Giorno | Numero del giorno della settimana |
|---|---|
| Monday | 0 |
| Martedรฌ | 1 |
| mercoledรฌ | 2 |
| Giovedรฌ | 3 |
| venerdรฌ | 4 |
| Sabato | 5 |
| Domenica | 6 |
Weekday Number รจ utile per gli array il cui indice dipende dal giorno della settimana.
Fase 2) Successivamente, creiamo un'istanza dell'oggetto data.
Fase 3) Successivamente, stampiamo la data ed eseguiamo il codice.
Il risultato รจ conforme alle aspettative.
Python Data e ora attuali: adesso() oggi()
Passo 1) Come gli oggetti Date, possiamo anche usare โOGGETTI DATAORAโ in Python. Python gli oggetti data e ora forniscono la data insieme all'ora ore, minuti, secondi e millisecondi.
Quando eseguiamo il codice per datetime, fornisce l'output con la data e l'ora correnti.
Passo 2) Con "DATETIME OBJECT" รจ possibile anche richiamare la classe time. Supponiamo di voler stampare solo l'ora corrente senza la data.
t = datetime.time(datetime.now())
- Avevamo importato la classe temporale. Gli assegneremo il valore corrente del tempo utilizzando datetime.now()
- Stiamo assegnando il valore dell'ora corrente alla variabile t.
E questo mi darร proprio il tempo. Quindi eseguiamo questo programma.
Ok, quindi come potete vedere qui ho la data e l'ora. E poi sulla riga successiva ho solo l'ora.
Passo 3) Applicheremo il nostro indicizzatore dei giorni della settimana all'elenco dei giorni della settimana per sapere qual รจ il giorno odierno.
- L'operatore dei giorni della settimana (wd) viene assegnato a un numero compreso tra 0 e 6 a seconda del giorno della settimana corrente. Qui abbiamo dichiarato l'array della lista dei giorni (lun, mar, merโฆdom).
- Usa quel valore di indice per sapere che giorno รจ. Nel nostro caso, รจ il numero 2 e rappresenta mercoledรฌ, quindi nell'output verrร stampato "Che รจ mercoledรฌ".
Ecco il codice completo per ottenere la data e l'ora correnti utilizzando datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Come formattare l'output di data e ora con Strftime()
Finora abbiamo imparato come usare datetime e date oggetto in Python. Faremo un ulteriore passo avanti e impareremo come utilizzare una funzione di formattazione per formattare ora e data.
Passo 1) Per prima cosa vedremo un semplice passaggio su come formattare l'anno. ร meglio capire con un esempio.
- Abbiamo usato il "funzione strftime" per la formattazione.
- Questa funzione utilizza diversi codice di controllo per dare un output.
- Ogni codice di controllo corrisponde a parametri diversi come anno, mese, giorno della settimana e data [(%y/%Y โ anno), (%a/%A- giorno della settimana), (%b/%B- mese), (%d โ giorno del mese)] .
- Nel nostro caso, lo รจ ("%Y") che assomiglia a year, stampa l'anno completo con il secolo (ad esempio, 2018).
Passo 2) Ora se sostituisci ("%Y") con lettere minuscole, ovvero ("%y) ed esegui il codice, l'output mostrerร solo (18) e non (2018). Il secolo dell'anno non verrร visualizzato come mostrato nello screenshot seguente
Passo 3) La funzione strf puรฒ dichiarare separatamente la data, il giorno, il mese e l'anno. Inoltre, con piccole modifiche al codice di controllo nella funzione strftime รจ possibile formattare lo stile del testo.
All'interno della funzione strftime, se si sostituisce (%a) con la lettera maiuscola A, ovvero (%A), l'output verrร stampato come "Friday" invece che come la semplice abbreviazione "Fri".
Passo 4) Con l'aiuto della funzione "Strftime" possiamo anche recuperare l'ora, la data del sistema locale o entrambi.
- %C- indica la data e l'ora locale
- %x- indica la data locale
- %X- indica l'ora locale
Nell'output, puoi vedere il risultato come previsto
Passo 5) La "funzione strftime" consente di chiamare l'ora in qualsiasi formato 24 ore o 12 ore.
Semplicemente definendo un codice di controllo come %I/H per ora, % M per minuto, %S per secondo, รจ possibile chiamare l'ora per diversi formati
12 ore l'ora รจ dichiarata [print now.strftime(โ%I:%M:%S %p)]
24 ore l'ora รจ dichiarata [print now.strftime(โ%H:%Mโ)]
Ecco il codice completo per convertire datetime in oggetto String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
In cosa consiste Timedelta? Python?
Delta temporale in Python รจ un oggetto che rappresenta la durata. Viene utilizzato principalmente per calcolare la durata tra due date e orari. Viene anche utilizzato per recuperare l'oggetto con una certa differenza di data e ora. L'oggetto timedelta supporta operazioni matematiche come addizioni, sottrazionitracoperazioni, moltiplicazioni, divisioni ecc.
Come utilizzare gli oggetti Timedelta
Con Python Con gli oggetti timedelta รจ possibile stimare il tempo sia nel futuro che nel passato. In altre parole, รจ un intervallo di tempo per prevedere qualsiasi giorno, data o ora speciale.
Ricorda che questa funzione non serve per stampare l'ora o la data, ma qualcosa per CALCOLARE il futuro o il passato. Vediamo un Python esempio timedelta per capirlo meglio.
Passo 1) Per eseguire gli oggetti Timedelta, รจ necessario dichiarare prima l'istruzione import e quindi eseguire il codice
- Scrivi l'istruzione di importazione per timedelta
- Ora scrivi il codice per stampare l'oggetto dal delta temporale come mostrato nello screenshot
- Esegui il codice. Il timedelta rappresenta un intervallo di 365 giorni, 8 ore e 15 minuti e stampa lo stesso
Confuso? Il prossimo passaggio aiuterร -
Passo 2) Prendiamo la data e l'ora di oggi per verificare se la nostra dichiarazione di importazione funziona bene. Quando il codice viene eseguito, stampa la data odierna, il che significa che la nostra dichiarazione di importazione funziona bene
Passo 3) Vedremo come possiamo recuperare la data di un anno da adesso tramite oggetti delta. Quando eseguiamo il codice, fornisce l'output previsto.
Passo 4) Un altro esempio di come il delta temporale puรฒ essere utilizzato per calcolare la data futura dalla data e dall'ora correnti
Passo 5) Diamo un'occhiata a un esempio piรน complesso. Vorrei determinare quanti giorni sono passati dal Capodanno. Ecco come procederemo
- Usando today= date.today() otterremo la data di oggi
- Sappiamo che il nuovo anno cade sempre il 1ยฐ gennaio, ma l'anno potrebbe essere diverso. Usando nyd=date(today.year,1,1) memorizziamo il nuovo anno nella variabile nyd
- Se nyd < oggi: confronta se la data corrente รจ successiva al nuovo anno. In caso affermativo, entra nel ciclo while
- ((oggi-nyd).giorni) fornisce la differenza tra la data corrente e il nuovo anno in GIORNI
L'output mostra che "il Capodanno รจ giร passato 11 giorni fa".
Ecco il codice completo di funzionamento
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Esempio
I seguenti esempi mostrano le stesse operazioni di data e ora scritte per Python 2, dove print รจ un'istruzione anzichรฉ una funzione. Utilizzare queste versioni solo quando si mantiene il codice legacy Python 2 codici.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















