CodeGym /Corsi /Python SELF IT /Libreria datetime

Libreria datetime

Python SELF IT
Livello 14 , Lezione 5
Disponibile

9.1 Lavorare con la data e l'ora

Ai programmatori capita molto spesso di dover lavorare nei loro programmi con date e orari. Quindi non c'è nulla di sorprendente nel fatto che in Python ci siano due librerie standard datetime e time.

La libreria datetime è parte della libreria standard di Python e fornisce classi per lavorare con date e orari. Permette di creare, manipolare e formattare date e orari, oltre che eseguire operazioni aritmetiche con essi.

Le principali classi della libreria datetime

Classe datetime.date

Questa classe rappresenta una data (anno, mese, giorno) senza ora. È utile per lavorare con date di calendario.

Esempio d'uso:


import datetime

# Creazione di un oggetto data
d = datetime.date(2023, 5, 24)
print(d)  # Output: 2023-05-24
            
# Ottenere la data corrente
today = datetime.date.today()
print(today)
            
# Accesso agli attributi di anno, mese e giorno
print(d.year)  # Output: 2023
print(d.month)  # Output: 5
print(d.day)  # Output: 24

Classe datetime.time

Questa classe rappresenta l'ora (ore, minuti, secondi, microsecondi) senza data. È utile per lavorare con l'ora del giorno.

Esempio d'uso:


import datetime

# Creazione di un oggetto ora
t = datetime.time(14, 30, 45)
print(t)  # Output: 14:30:45
            
# Accesso agli attributi di ore, minuti e secondi
print(t.hour)  # Output: 14
print(t.minute)  # Output: 30
print(t.second)  # Output: 45

Classe datetime.datetime

Questa classe combina data e ora (anno, mese, giorno, ore, minuti, secondi, microsecondi). È utile per lavorare con momenti di tempo specifici.

Esempio d'uso:


import datetime

# Creazione di un oggetto data e ora
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Output: 2023-05-24 14:30:45
        
# Ottenere la data e l'ora corrente
now = datetime.datetime.now()
print(now)
        
# Accesso agli attributi di data e ora
print(dt.year)  # Output: 2023
print(dt.month)  # Output: 5
print(dt.day)  # Output: 24
print(dt.hour)  # Output: 14
print(dt.minute)  # Output: 30
print(dt.second)  # Output: 45

Classe datetime.timedelta

Questa classe rappresenta la differenza tra due momenti di tempo, espressa in giorni, secondi e microsecondi. È utile per eseguire operazioni aritmetiche con date e orari.

Esempio d'uso:


import datetime

# Creazione di un oggetto timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Output: 10 days, 5:30:00
        
# Aggiunta di timedelta a una data
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Output: 2023-06-03 20:00:00
        
# Sottrazione di timedelta da una data
earlier_dt = dt - delta
print(earlier_dt)  # Output: 2023-05-14 09:00:00

4.2 Formattazione e parsing di date e orari

Spesso abbiamo bisogno non solo di lavorare con una data, ma di convertirla in una stringa di un certo tipo. Il processo inverso, quando convertiamo una stringa in un oggetto, si chiama solitamente parsing. Per queste operazioni in Python ci sono classi e metodi specifici:

Metodo strftime()

Il metodo strftime() viene utilizzato per formattare oggetti datetime in una stringa secondo un formato specificato.

Esempio d'uso:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Formattazione della data e dell'ora
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Output: 2023-05-24 14:30:45
    
# Formattazione solo della data
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Output: 24-05-2023
    
# Formattazione solo dell'ora
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Output: 14:30:45

Metodo strptime()

Il metodo strptime() viene utilizzato per il parsing di stringhe in oggetti datetime secondo un formato specificato.

Esempio d'uso:


import datetime

# Parsing di una stringa in un oggetto datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Output: 2023-05-24 14:30:45
    
# Parsing di una stringa in un oggetto date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Output: 2023-05-24
    
# Parsing di una stringa in un oggetto time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Output: 14:30:45

4.3 Lavorare con i fusi orari

Come dimostra l'esperienza, i nostri servizi sono utilizzati da persone in tutto il mondo, e purtroppo vivono in paesi diversi e hanno diversi fusi orari (timezone). Pertanto, come programmatore, devi essere in grado di lavorare anche con questi.

E ovviamente in Python c'è una classe anche per questo caso:

Classe timezone

La classe timezone del modulo datetime permette di lavorare con i fusi orari.


import datetime

# Creazione di un oggetto datetime con fuso orario UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Output: 2023-05-24 14:30:45+00:00
        
# Conversione in un altro fuso orario
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Output: 2023-05-24 23:30:45+09:00

Abbiamo esaminato la libreria datetime in modo molto riassuntivo, direi quasi superficiale. In futuro torneremo su di essa e impareremo a usarla per compiti più specifici. Per ora volevo solo farvi conoscere questa libreria e ampliare il vostro sguardo sul set di librerie standard.

Di qualsiasi libreria dovresti sapere prima di tutto che esiste e avere un'idea di cosa si può fare con il suo aiuto. Un elenco delle funzioni, dei loro parametri e di tutte le loro capacità è sempre disponibile nella documentazione ufficiale.

1
Sondaggio/quiz
Decoratori, livello 14, lezione 5
Non disponibile
Decoratori
Decoratori
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION