Python - Date e Ora
Ciao a tutti, futuri maghi Python! Oggi intraprenderemo un avventuroso viaggio attraverso il regno delle date e degli orari in Python. Come vostra insegnante di computer amichevole, sono entusiasta di guidarvi in questa avventura. Allora, afferrate le vostre bacchette virtuali (tastiere) e immergiamoci!
Cos'è un Intervallo di Tick?
Prima di iniziare a giocare con date e orari, diamo un'occhiata a un concetto fondamentale: gli intervalli di tick. Nel mondo dei computer, il tempo viene spesso misurato in tick. Ma cosa sono esattamente i tick?
Un tick è come il battito del cuore del vostro computer. È l'unità di tempo più piccola che il clock del vostro computer può misurare. In Python, misuriamo i tick come il numero di secondi trascorsi depuis le 00:00:00 UTC del 1 gennaio 1970. Questo punto nel tempo viene spesso chiamato "epoch".
Vediamo come ottenere il valore del tick corrente:
import time
ticks = time.time()
print("Valore del tick corrente:", ticks)
Se eseguite questo codice, vedrete un grande numero stampato. Questo è il numero di secondi che sono trascorsi dall'epoch. Molto cool, vero?
Cos'è TimeTuple?
Ora, parliamo di TimeTuple. Non è un nuovo passo di danza (anche se sembra sia!), ma piuttosto un modo che Python ha per rappresentare l'ora.
Un TimeTuple è una tupla che contiene 9 elementi che rappresentano diversi aspetti del tempo:
Indice | Attributo | Valori |
---|---|---|
0 | Anno | (ad esempio, 2023) |
1 | Mese | 1-12 |
2 | Giorno | 1-31 |
3 | Ora | 0-23 |
4 | Minuto | 0-59 |
5 | Secondo | 0-61 (60 e 61 per i secondi intercalari) |
6 | Giorno della settimana | 0-6 (0 è lunedì) |
7 | Giorno dell'anno | 1-366 |
8 | DST | -1, 0, 1 (flag per l'ora legale) |
Non preoccupatevi se questo sembra troppo complicato. Utilizzeremo questi elementi durante la nostra lezione, e in breve tempo vi familiarizzerete con essi!
Ottenere l'Ora Corrente
Cominciamo con qualcosa di semplice: ottenere l'ora corrente. Python rende questo incredibilmente facile con il modulo time
:
import time
current_time = time.localtime()
print("Ora corrente:", current_time)
Quando eseguite questo, vedrete una TimeTuple stampata. Ogni numero corrisponde a un elemento nella tabella che abbiamo appena visto. Ad esempio, se vedete time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0)
, significa che è il 15 giugno 2023, alle 14:30.
Ottenere l'Ora Formattata
Mentre i TimeTuple sono utili per i computer, non sono molto facili da leggere per gli esseri umani. Formattiamo il nostro tempo in un modo più leggibile:
import time
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Ora formattata:", formatted_time)
Questo stampa qualcosa come "2023-06-15 14:30:00". Molto meglio, vero? I %Y
, %m
, %d
, ecc., sono codici di formattazione che dicono a Python come ordinare gli elementi del tempo. È come dare a Python un template per come volete che il vostro tempo sia visualizzato.
Ottenere il Calendario per un Mese
Ora, passiamo a un altro livello e stampiamo un intero calendario per un mese. Utilizzeremo il modulo calendar
per questo:
import calendar
year = 2023
month = 6
print(calendar.month(year, month))
Questo stampa un calendario ben formattato per giugno 2023. È come avere un mini calendario da tavolo proprio nel vostro programma Python!
Il Modulo time
Abbiamo già utilizzato il modulo time
un po', ma esploriamolo ulteriormente. Questo modulo fornisce varie funzioni relative al tempo. Ecco alcune utili:
import time
print("Tempo corrente in secondi dall'epoch:", time.time())
print("Ora locale corrente:", time.ctime())
print("Attendo per 2 secondi...")
time.sleep(2)
print("Svegliato!")
La funzione sleep()
è particolarmente utile quando volete che il vostro programma si ferma per un po'. È come dire al vostro codice di fare una piccola pausa!
Il Modulo calendar
Abbiamo visto come stampare un mese, ma il modulo calendar
può fare molto di più:
import calendar
print("Il 2023 è un anno bisestile?", calendar.isleap(2023))
print("Quanti anni bisestili tra il 2000 e il 2050?", calendar.leapdays(2000, 2050))
print("Quale giorno della settimana è il 2023-06-15?", calendar.weekday(2023, 6, 15))
Queste funzioni vi aiutano a lavorare con calendari e date facilmente. Non dovete più contare sui vostri fingers per capire gli anni bisestili!
Modulo Python datetime
Il modulo datetime
è come il coltellino svizzero della manipolazione del tempo in Python. Combina la funzionalità sia del modulo time
che del modulo calendar
e aggiunge anche altre funzionalità.
from datetime import datetime, date, time
# Data e ora corrente
now = datetime.now()
print("Data e ora corrente:", now)
# Creare una data specifica
my_birthday = date(1990, 5, 15)
print("Il mio compleanno:", my_birthday)
# Creare un'ora specifica
alarm = time(7, 30, 0)
print("Sveglia impostata per:", alarm)
Con datetime
, potete creare, manipolare e formattare date e orari con facilità.
Oggetto Python date
L'oggetto date
dal modulo datetime
vi permette di lavorare con date (anno, mese e giorno):
from datetime import date
today = date.today()
print("Data odierna:", today)
print("Anno:", today.year)
print("Mese:", today.month)
print("Giorno:", today.day)
È come avere un calendario intelligente che sa quale giorno è e può raccontarvi tutto al riguardo!
Oggetto Python time
Allo stesso modo, l'oggetto time
vi permette di lavorare con gli orari (ora, minuto, secondo, microsecondo):
from datetime import time
lunch_time = time(12, 30, 0)
print("Ora di pranzo:", lunch_time)
print("Ora:", lunch_time.hour)
print("Minuto:", lunch_time.minute)
print("Secondo:", lunch_time.second)
Ora potete programmare con precisione le vostre pause di programmazione!
Oggetto Python datetime
L'oggetto datetime
combina date
e time
, dandovi il pieno controllo su entrambi:
from datetime import datetime
now = datetime.now()
print("Data e ora corrente:", now)
print("Anno corrente:", now.year)
print("Mese corrente:", now.month)
print("Giorno corrente:", now.day)
print("Ora corrente:", now.hour)
print("Minuto corrente:", now.minute)
print("Secondo corrente:", now.second)
È come avere un orologio superpotente che sa tutto sul momento corrente!
Oggetto Python timedelta
Non ultimo, parliamo di timedelta
. Questo oggetto rappresenta una durata di tempo ed è incredibilmente utile per l'aritmetica delle date:
from datetime import datetime, timedelta
now = datetime.now()
print("Data e ora corrente:", now)
# Aggiungi 1 giorno
tomorrow = now + timedelta(days=1)
print("Questa volta domani:", tomorrow)
# Sottrai 1 settimana
last_week = now - timedelta(weeks=1)
print("Questa volta la scorsa settimana:", last_week)
Con timedelta
, potete viaggiare nel tempo nel vostro codice! Beh, tipo. Potete facilmente calcolare future e date passate, il che è molto utile per molte applicazioni.
E qui avete tutto, miei giovani Pythonisti! Abbiamo attraversato il fascinante mondo delle date e degli orari in Python. Ricordate, la pratica fa il maestro, quindi non esitate a sperimentare con questi concetti. Prima che vi accorgete, sarete in grado di manipolare il tempo come un vero signore del tempo codificato!
Credits: Image by storyset