Python Datetime: una guida completa con esempi

Python Datetime: una guida completa con esempi

Quando si lavora con progetti di dati in Python, è molto probabile che si utilizzino le funzioni datetime. Quasi tutti i set di dati con cui lavorerai avranno una colonna datetime che vorrai manipolare in base alle tue esigenze e ai requisiti del progetto.

Fortunatamente, Python viene fornito con il proprio modulo integrato denominato datetime che consente di rappresentare, manipolare ed eseguire operazioni con istanze di datetime come date, orari e combinazioni dei due. Padroneggiare il modulo Python datetime ti aiuterà a realizzare analisi di serie temporali più solide nei tuoi progetti.

Il modulo Python datetime è uno strumento per la gestione di date, orari e intervalli di tempo. Ti consente di eseguire varie operazioni su date e orari in modo semplice.

Python Datetime: una guida completa con esempi

Estratto di programmazione: codice sorgente e codice binario visualizzati dallo sviluppatore del software. Tema nero con sintassi colorata.

Utilizzando il modulo datetime in Python , puoi facilmente lavorare con valori di data e ora, gestire fusi orari, eseguire calcoli e persino gestire la formattazione e l'analisi per varie rappresentazioni. Questa funzionalità rende il modulo datetime uno strumento essenziale in molte applicazioni, dall'elaborazione dei dati alla pianificazione degli eventi e oltre.

Prima di iniziare a utilizzare il modulo datetime di Python nei tuoi progetti, è fondamentale comprendere le classi sottostanti. Nella sezione seguente, esamineremo le cinque classi principali del modulo DateTime di Python. Entriamo in esso!

Sommario

Quali sono le 5 classi principali del modulo Python Datetime?

Il modulo Python Datetime fa parte della libreria standard che fornisce classi per manipolare e lavorare con date, orari, fusi orari e durate.

Il modulo si compone di cinque classi principali:

  1. Appuntamento

  2. Data,

  3. Tempo,

  4. Deltatempo

  5. Fuso orario.

    Esamineremo ogni classe seguita da casi d'uso di esempio per aiutarti a comprendere meglio il concetto.

Come utilizzare la classe Datetime

La classe Python Datetime è la classe più comunemente usata nel modulo. Rappresenta un singolo punto nel tempo con attributi come anno, mese, giorno, ora, minuto, secondo e microsecondo.

Alcune operazioni comuni con la classe Python Datetime includono:

  • dataora.dataora.ora()

Questa funzione consente di ottenere la data e l'ora correnti. Di seguito è riportato un esempio di recupero della data e dell'ora correnti:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

Questo produrrà la data e l'ora correnti al momento dell'esecuzione nel formato AAAA-MM-GG HH:MM:SS.ssssss.

Python Datetime: una guida completa con esempi

  • dataora.dataora

Questa funzione consente di creare un oggetto data e ora personalizzato. Di seguito è riportato un esempio di utilizzo di datetime.datetime nel codice:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

Oltre alle funzioni di cui sopra, la classe Datetime fornisce anche metodi per lavorare con data e ora come:

Python Datetime: una guida completa con esempi

  • strftime() :

Il metodo consente di formattare gli oggetti data e ora come stringa. Di seguito è riportato un esempio di metodo strftime():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

Questo codice convertirà l'oggetto datetime in una stringa:

Python Datetime: una guida completa con esempi

  • strptime() :

Questa funzione nella classe datetime consente di analizzare una stringa che rappresenta gli oggetti data e ora in un singolo oggetto Datetime. Di seguito è riportato un esempio di analisi di una data archiviata come stringa in un oggetto Datetime:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

Questo convertirà la stringa in un oggetto DateTime.

Python Datetime: una guida completa con esempi

Come utilizzare la classe data

La classe Date consente di gestire esclusivamente oggetti data (anno, mese e giorno). È possibile creare oggetti data con la classe data.

Alcune operazioni comuni con la classe Date includono:

  • dataora.data.oggi()

Questa funzione nella classe data consente di ottenere la data corrente. Di seguito è riportato un esempio di recupero della data corrente con la classe data:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

Questo codice Python restituirà la data corrente al momento dell'esecuzione nel formato AAAA-MM-GG.

Python Datetime: una guida completa con esempi

Al momento della stesura di questo articolo, la data corrente era 2023-05-22.

  • dataora.data()

Questa funzione nella classe data consente di creare oggetti data. L'esempio mostra la creazione di un oggetto data personalizzato con la funzione datetime.date():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

Nella funzione datetime.date(), fornisci l'anno, il mese e il giorno come argomenti.

Questo script produrrà 2023-05-22, poiché hai creato un oggetto data personalizzato per la data 22 maggio 2023.

Python Datetime: una guida completa con esempi

La classe Date fornisce anche metodi utili, come:

  • giorno feriale()

Questo metodo nella classe date restituisce il giorno della settimana (0 per lunedì, 1 per martedì e così via). L'esempio seguente mostra il metodo weekday():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

In questo esempio, custom_date.weekday() restituirà 0 perché il 22 maggio 2023 cade di lunedì.

Python Datetime: una guida completa con esempi

  • strftime()

Questo metodo nella classe data consente di formattare l'oggetto data come stringa . L'esempio seguente mostra la funzione strftime():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

Questo produrrà la data formattata come "giorno del mese, anno".

Python Datetime: una guida completa con esempi

  • strptime()

Questo metodo consente di analizzare una stringa che rappresenta una data in un oggetto Date. Di seguito è riportato un esempio di conversione di una data stringa in un oggetto Date:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

Questo produrrà l'oggetto data creato dalla stringa della data.

Python Datetime: una guida completa con esempi

Come utilizzare la classe temporale

The Time class allows you to work with time instances (hour, minute, second, microsecond). With the time class, you can create a custom time object with datetime.time().

The following example demonstrates creating a custom time object:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

In the datetime.time() function, you provide the hour and minute as arguments.

This script will output 17:40:00, as specified in the Python code.

Python Datetime: una guida completa con esempi

The Time class provides useful methods, such as:

  • strftime()

This method allows you to format the time object as a string. Below is an example of this function:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

This will output the local time formatted as “Hour:Minute”.

Python Datetime: una guida completa con esempi

  • strptime()

This function allows you to parse a string representing time into a Time object. The following example demonstrates this function:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

This will output the time objects created from the time string.

Python Datetime: una guida completa con esempi

How to Use The Timedelta Class

The Timedelta class allows you to represent represents a duration or difference between two dates or times.

With Timedelta class, you can perform the following operations:

  • Calculate the difference between two dates or times

An example of calculating the difference between two dates is given below:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: una guida completa con esempi

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: una guida completa con esempi

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

You can perform the following operation with timezone class:

  • Create a timezone object

To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).

This script will output a timezone object like .

Python Datetime: una guida completa con esempi

  • Object with a specific timezone

To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.

The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.

Python Datetime: una guida completa con esempi

The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.

You have gone through some of the most important functions in the datetime module in Python. In the next section we will implement some of the above functions to a case studywhich will give you a practical look into the implementation of these datetime module in your projects.

Implementing the DateTime Module Functions to a Case Study

Let’s consider a case study where we are given a dataset of different events that happened around the world. The dataset has corresponding dates and times in a string format.

Il nostro compito è trasformare queste date e orari in oggetti DateTime ed eseguire operazioni su di essi secondo necessità.

Supponiamo di avere il seguente set di dati:

Python Datetime: una guida completa con esempi

Se controlliamo i tipi di dati della variabile vedremo che la data e l'ora sono memorizzate come una stringa. Pertanto, prima di eseguire qualsiasi analisi, dobbiamo convertire le colonne di data e ora in un formato adatto.

Per fare ciò, possiamo utilizzare il seguente codice:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

In questo blocco di codice, per prima cosa creiamo una nuova colonna "DateTime" nel tuo DataFrame concatenando le colonne "Date" e "Time". Quindi, applichiamo la funzione datetime.strptime a ogni valore in questa nuova colonna per convertire le stringhe di data e ora in oggetti datetime. Infine, stampiamo il DataFrame per vedere il risultato.

Python Datetime: una guida completa con esempi

La prossima cosa che vorremmo fare è calcolare la differenza tra due eventi. Per fare ciò possiamo utilizzare il seguente codice:

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

Questo script Python calcolerà la durata tra 'Event1' e 'Event2'.

Python Datetime: una guida completa con esempi

Infine, convertiamo gli oggetti datetime in un fuso orario diverso. When può raggiungere questo obiettivo utilizzando le funzioni Timezone nel modulo datetime.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

In questo codice, creiamo un oggetto fuso orario per UTC. Successivamente, creiamo una nuova colonna nel nostro DataFrame denominata "DateTime_UTC" applicando una funzione lambda alla nostra colonna "DateTime". Questo sostituirà le informazioni sul fuso orario di ciascun oggetto datetime con UTC.

Python Datetime: una guida completa con esempi

Attraverso il caso di studio di esempio sopra, puoi vedere come le varie funzioni fornite dal modulo DateTime lavorano insieme per manipolare date e orari in un formato adatto.

Ora che hai familiarità con alcune delle funzioni nel modulo datetime, andiamo avanti e diamo un'occhiata ad alcune funzioni aggiuntive che vorrai usare mentre affronti progetti più complessi.

Oltre alle funzioni sopra elencate, ci sono molte altre funzioni utili che puoi utilizzare a seconda del problema in questione. Gli sviluppatori Python spesso tengono aperta una pagina di documentazione per cercare funzioni che possano soddisfare le tue esigenze. E ti suggeriamo di fare lo stesso!

Ulteriori funzioni di data e ora

In questa sezione, discuteremo le funzioni aggiuntive nel modulo datetime di Python . Ciò include il recupero dei nomi dei giorni della settimana, dei mesi e dei giorni della settimana, insieme alla funzione ctime() .

Come recuperare i giorni della settimana da una data

Il modulo datetime viene fornito con una funzione weekday() , che restituisce il giorno della settimana come numero intero (dove lunedì è 0 e domenica è 6).

Per utilizzare questa funzione, puoi chiamarla su un oggetto data o data/ora.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

L'output del codice precedente è riportato nell'immagine seguente:

Python Datetime: una guida completa con esempi

La data locale corrente è 23/05/2023 e il giorno della settimana è lunedì.

Come recuperare i nomi dei mesi e dei giorni della settimana da una data

datetime permette anche di recuperare il nome del mese e il giorno della settimana.

È possibile utilizzare la funzione strftime() , che formatta un oggetto data o datetime come stringa.

Di seguito è riportato un esempio di come utilizzare la funzione strftime() per ottenere il nome del mese e il giorno della settimana:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

Questo codice stamperà il nome del giorno della settimana e il nome del mese nell'output.

Python Datetime: una guida completa con esempi

Come utilizzare la funzione Ctime

La funzione ctime() nel modulo datetime restituisce una rappresentazione di stringa di un oggetto data o data/ora, formattato come "Day Mon DD HH:MM:SS YYYY".

ctime è un metodo per un oggetto datetime , non una funzione autonoma.

Di seguito è riportato un esempio di utilizzo della funzione ctime nel codice:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

Il codice precedente restituirà una rappresentazione di stringa dell'oggetto data.

Python Datetime: una guida completa con esempi

Per ulteriori informazioni sull'utilizzo dei dati delle serie temporali, dai un'occhiata al seguente video:

Pensieri finali

Come programmatore Python, è importante padroneggiare il modulo datetime. È un toolkit che ti consente di gestire date, orari e intervalli di tempo. Questi sono gli elementi che incontrerai frequentemente nei dati del mondo reale.

Avrai bisogno di questo modulo per convertire le stringhe in oggetti datetime, gestire le conversioni di fuso orario ed eseguire operazioni su date e orari.

Imparando a utilizzare il modulo datetime, sarai meglio preparato a gestire queste attività nei tuoi progetti!


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere