Python Datetime: lavorare con date e ore
Scopri come gestire date, orari, fusi orari e calcoli in Python. Padroneggia la formattazione, l'analisi e l'aritmetica utilizzando datetime e timedelta.
Panoramica
La gestione di date e orari è una sfida nota nello sviluppo di software, a causa degli anni bisestili, delle regolazioni dell'ora legale e dei diversi formati di fuso orario. Python risolve queste sfide con il suo modulo `datetime` integrato. Questo modulo fornisce un robusto insieme di classi di oggetti, come `date`, `time`, `datetime` e `timezone`, che rappresentano e manipolano i dati temporali in modo pulito, rendendo semplici i calcoli delle date.
Una delle attività più comuni è la conversione delle date in stringhe (formattazione) e delle stringhe in date (analisi). Python utilizza due metodi principali per questo: `.strftime()` (formato stringa ora) converte un oggetto datetime in una stringa leggibile utilizzando codici di formattazione (come `%Y` per anno, `%m` per mese e `%d` per giorno). Al contrario, `datetime.strptime()` (string parse time) analizza un input di stringa grezza in un oggetto datetime basato su un modello di formato corrispondente, che è vitale quando si leggono log o input API.
Anche l'esecuzione dei calcoli relativi alle date è completamente supportata utilizzando l'oggetto `timedelta`. Un "timedelta" rappresenta una durata di tempo (ad esempio, 7 giorni, 4 ore). Puoi aggiungere o sottrarre un "timedelta" da un "datetime" per calcolare date passate o future (ad esempio per determinare una data di scadenza). Quando si lavora con più fusi orari, l'utilizzo di oggetti che riconoscono il fuso orario (come "zoneinfo" o "timezone.utc") è fondamentale per garantire che i confronti delle date rimangano accurati tra le diverse posizioni dei server.
Codice e output di esecuzione
Analisi di stringhe in oggetti datetime e calcolo delle scadenze future utilizzando timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Implementazione passo dopo passo
- Calcolo della scadenza della prova e delle date di fatturazione
- Analisi delle stringhe di timestamp all'interno dei log di accesso al server
- Pianificazione di processi cron automatizzati o report ricorrenti
Domande frequenti
Cos'è un oggetto datetime ingenuo e consapevole?
Un oggetto datetime ingenuo non contiene informazioni sul fuso orario, mentre un oggetto datetime consapevole include gli offset del fuso orario, rendendolo sicuro per i calcoli dell'ora internazionale.
Come faccio a calcolare la differenza tra due date?
La sottrazione di un oggetto datetime da un altro restituisce un oggetto timedelta che rappresenta la durata esatta tra di loro.
Argomenti correlati
Scopri la potenza del modulo matematico integrato in Python. Scopri le funzioni trigonometriche, i logaritmi, i metodi di arrotondamento e le costanti.
Analisi JSON PythonScopri come leggere, scrivere e analizzare i dati JSON in Python. Padroneggiare json.loads, json.dumps e personalizzare codificatori/decodificatori JSON.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come analizzare una stringa in un Datetime in Python
Scopri come convertire stringhe in oggetti datetime in Python. Padroneggia il metodo strptime, analizza le stringhe di date, gestisci i fusi orari e previeni errori di formato.
Foglio informativo sulla formattazione di Python DateTime
Scopri come analizzare e formattare date e ore in Python utilizzando datetime, strftime e strptime.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.