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.

  • ๐Ÿ”˜ Cinque classi: Il modulo datetime raggruppa le classi date, time, datetime, timedelta e tzinfo per la gestione di date e orari.
  • โ˜‘๏ธ Valori attuali: Le funzioni datetime.now() e date.today() restituiscono la data e l'ora attuali, incluso il numero del giorno della settimana.
  • โœ… Formattazione: La funzione strftime() converte una data e ora in testo leggibile utilizzando codici di controllo come %Y, %A e %H.
  • ๐Ÿงช Timedelta: Un oggetto timedelta misura una durata e prevede date future o passate tramite addizione e sottrazionetraczione.
  • ๏ธ direttive: Gli stessi codici di controllo gestiscono la funzione strftime() per l'output e la funzione strptime() per la lettura di una stringa e la sua conversione in un oggetto datetime.
  • ๐Ÿค– Flussi di lavoro basati sull'intelligenza artificiale: Le pipeline di apprendimento automatico ricavano caratteristiche di data e ora, come il giorno della settimana e l'ora, per i modelli di serie temporali.

Python Appuntamento

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.

Utilizza la classe Data e DateTime

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

Stampa la data utilizzando date.today()

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.

Stampa la data utilizzando date.today()

Fase 2) Successivamente, creiamo un'istanza dell'oggetto data.

Utilizza la classe Data e DateTime

Fase 3) Successivamente, stampiamo la data ed eseguiamo il codice.

Utilizza la classe Data e DateTime

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.

Python Data e ora correnti

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.

Python Data e ora correnti

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รฌ".

Python Data e ora correnti

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.

Formatta l'output di data e ora con Strftime()

  • 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

Formatta l'output di data e ora con Strftime()

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.

Formatta l'output di data e ora con Strftime()

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".

Formatta l'output di data e ora con Strftime()

Passo 4) Con l'aiuto della funzione "Strftime" possiamo anche recuperare l'ora, la data del sistema locale o entrambi.

  1. %C- indica la data e l'ora locale
  2. %x- indica la data locale
  3. %X- indica l'ora locale

Formatta l'output di data e ora con Strftime()

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.

Formatta l'output di data e ora con Strftime()

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

  1. Scrivi l'istruzione di importazione per timedelta
  2. Ora scrivi il codice per stampare l'oggetto dal delta temporale come mostrato nello screenshot
  3. Esegui il codice. Il timedelta rappresenta un intervallo di 365 giorni, 8 ore e 15 minuti e stampa lo stesso

Oggetti Timedelta

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

Oggetti Timedelta

Passo 3) Vedremo come possiamo recuperare la data di un anno da adesso tramite oggetti delta. Quando eseguiamo il codice, fornisce l'output previsto.

Oggetti Timedelta

Passo 4) Un altro esempio di come il delta temporale puรฒ essere utilizzato per calcolare la data futura dalla data e dall'ora correnti

Oggetti Timedelta

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

Oggetti Timedelta

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)

DOMANDE FREQUENTI

Utilizza datetime.strptime(testo, formato) per analizzare una stringa e convertirla in un oggetto datetime. Passa le stesse direttive utilizzate da strftime(), quindi "2018-06-29" viene letto come "%Y-%m-%d". Come operazione inversa di strftime(), strptime() trasforma il testo leggibile dall'uomo in un oggetto datetime utilizzabile per i calcoli.

Un oggetto datetime senza tzinfo รจ ingenuo; l'aggiunta di un fuso orario lo rende consapevole. Utilizzare il modulo zoneinfo integrato (Python 3.9+) o il pacchetto pytz per localizzare date e orari, quindi convertire tra i fusi orari in modo che i calcoli rimangano corretti in tutte le regioni.

Per ottenere i secondi trascorsi dall'epoca Unix come valore float, chiama il metodo timestamp() su un oggetto datetime, ad esempio datetime.now().timestamp(). Per fare il contrario, datetime.fromtimestamp(value) ricostruisce un oggetto datetime a partire da un timestamp Unix.

Entrambi restituiscono la data e l'ora locali correnti, ma datetime.now() accetta un argomento facoltativo per il fuso orario, mentre datetime.today() no. Per il codice che tiene conto del fuso orario, รจ preferibile usare datetime.now(tz) in modo che il risultato includa l'offset corretto anzichรฉ rimanere ingenuo.

Sรฌ. Il modulo datetime viene fornito con Python, quindi non รจ necessario alcun pip install. Importalo con "from datetime import datetime, date, time, timedelta" e le classi date, time, datetime, timedelta e tzinfo saranno immediatamente disponibili.

Chiama il metodo isoformat() per ottenere una stringa standard ISO 8601 come "2018-06-29T08:15:27". Per un oggetto data restituisce "YYYY-MM-DD". A differenza di strftime(), che crea layout personalizzati a partire da direttive, isoformat() non richiede codici di controllo.

Le pipeline di machine learning trasformano i timestamp grezzi in caratteristiche come giorno della settimana, ora, mese e tempo trascorso utilizzando datetime e timedelta. Queste caratteristiche di data elaborate aiutano i modelli di serie temporali e i sistemi di previsione basati sull'intelligenza artificiale a rilevare modelli stagionali e ciclici.

Sรฌ. GitHub Copilot e gli assistenti AI agentic generano stringhe di formato strftime(), calcoli timedelta e conversioni di fuso orario a partire da un breve commento, e possono spiegare direttive criptiche. Esegui sempre il codice suggerito, poichรฉ la gestione delle date e degli offset รจ facile da sbagliare.

Riassumi questo post con: