Python Datetime: una guía completa con ejemplos

Python Datetime: una guía completa con ejemplos

Cuando trabaje con proyectos de datos en Python, lo más probable es que utilice funciones de fecha y hora. Casi todos los conjuntos de datos con los que trabajará tendrán una columna de fecha y hora que querrá manipular de acuerdo con sus necesidades y requisitos del proyecto.

Afortunadamente, Python viene con su propio módulo incorporado llamado fecha y hora que le permite representar, manipular y realizar operaciones con instancias de fecha y hora, como fechas, horas y combinaciones de las dos. Dominar el módulo de fecha y hora de Python lo ayudará a realizar análisis de series temporales más sólidos en sus proyectos.

El módulo de fecha y hora de Python es una herramienta para manejar fechas, horas e intervalos de tiempo. Le permite realizar varias operaciones en fechas y horas de una manera sencilla.

Python Datetime: una guía completa con ejemplos

Resumen de programación: código fuente y código binario en la pantalla del desarrollador de software. Tema negro con sintaxis coloreada.

Al usar el módulo de fecha y hora en Python , puede trabajar fácilmente con valores de fecha y hora, administrar zonas horarias, realizar cálculos e incluso manejar el formato y el análisis para varias representaciones. Esta funcionalidad hace que el módulo de fecha y hora sea una herramienta esencial en muchas aplicaciones, desde el procesamiento de datos hasta la programación de eventos y más.

Antes de comenzar a usar el módulo de fecha y hora de Python en sus proyectos, es crucial comprender sus clases subyacentes. En la siguiente sección, veremos las cinco clases principales del módulo DateTime de Python. ¡Entremos en ello!

Tabla de contenido

¿Cuáles son las 5 clases principales del módulo de fecha y hora de Python?

El módulo Python Datetime es parte de la biblioteca estándar que proporciona clases para manipular y trabajar con fechas, horas, zonas horarias y duraciones.

El módulo consta de cinco clases principales:

  1. Fecha y hora

  2. Fecha,

  3. Tiempo,

  4. Timedelta

  5. Zona horaria.

    Veremos cada clase seguida de casos de uso de ejemplo para ayudarlo a comprender mejor el concepto.

Cómo utilizar la clase de fecha y hora

La clase Python Datetime es la clase más utilizada en el módulo. Representa un único punto en el tiempo con atributos como año, mes, día, hora, minuto, segundo y microsegundo.

Algunas operaciones comunes con la clase Datetime de Python incluyen:

  • fechahora.fechahora.ahora()

Esta función le permite obtener la fecha y la hora actuales. El siguiente es un ejemplo de recuperación de la fecha y hora actual:

import datetime

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

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

Esto generará la fecha y hora actual en el momento de la ejecución en el formato AAAA-MM-DD HH:MM:SS.ssssss.

Python Datetime: una guía completa con ejemplos

  • fechahora.fechahora

Esta función le permite crear un objeto personalizado de fecha y hora. El siguiente es un ejemplo del uso de datetime.datetime en su código:

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)

Además de las funciones anteriores, la clase Datetime también proporciona métodos para trabajar con fecha y hora como:

Python Datetime: una guía completa con ejemplos

  • strftime() :

El método le permite dar formato a los objetos de fecha y hora como una cadena. El siguiente es un ejemplo del método 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)

Este código convertirá el objeto de fecha y hora en una cadena:

Python Datetime: una guía completa con ejemplos

  • strptime() :

Esta función en la clase de fecha y hora le permite analizar una cadena que representa objetos de fecha y hora en un único objeto de fecha y hora. El siguiente es un ejemplo de cómo analizar una fecha almacenada como una cadena en un objeto 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)

Esto convertirá la cadena en un objeto DateTime.

Python Datetime: una guía completa con ejemplos

Cómo usar la clase de fecha

La clase Fecha le permite tratar exclusivamente con objetos de fecha (año, mes y día). Puede crear objetos de fecha con la clase de fecha.

Algunas operaciones comunes con la clase Date incluyen:

  • fechahora.fecha.hoy()

Esta función en la clase de fecha le permite obtener la fecha actual. El siguiente es un ejemplo de cómo recuperar la fecha actual con la clase de fecha:

import datetime

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

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

Este código de Python generará la fecha actual en el momento de la ejecución en el formato AAAA-MM-DD.

Python Datetime: una guía completa con ejemplos

Al momento de escribir este artículo, la fecha actual era 2023-05-22.

  • fechahora.fecha()

Esta función en la clase de fecha le permite crear objetos de fecha. El ejemplo demuestra la creación de un objeto de fecha personalizado con la función datetime.date():

import datetime

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

print("Custom date: ", custom_date)

En la función datetime.date(), proporciona el año, el mes y el día como argumentos.

Este script generará 2023-05-22, ya que ha creado un objeto de fecha personalizado para la fecha 22 de mayo de 2023.

Python Datetime: una guía completa con ejemplos

La clase Date también proporciona métodos útiles, como:

  • día laborable()

Este método en la clase de fecha devuelve el día de la semana (0 para lunes, 1 para martes, etc.). El siguiente ejemplo demuestra el método 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)

En este ejemplo, custom_date.weekday() devolverá 0 porque el 22 de mayo de 2023 cae en lunes.

Python Datetime: una guía completa con ejemplos

  • strftime()

Este método en la clase de fecha le permite formatear el objeto de fecha como una cadena . El siguiente ejemplo demuestra la función 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)

Esto generará la fecha formateada como "Mes, día, año".

Python Datetime: una guía completa con ejemplos

  • strptime()

Este método le permite analizar una cadena que representa una fecha en un objeto Fecha. El siguiente es un ejemplo de cómo convertir una fecha de cadena en un objeto Fecha:

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)

Esto generará el objeto de fecha creado a partir de la cadena de fecha.

Python Datetime: una guía completa con ejemplos

Cómo usar la clase de tiempo

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 guía completa con ejemplos

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 guía completa con ejemplos

  • 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 guía completa con ejemplos

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 guía completa con ejemplos

  • 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 guía completa con ejemplos

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 guía completa con ejemplos

  • 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 guía completa con ejemplos

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.

Nuestra tarea es transformar estas fechas y horas en objetos DateTime y realizar operaciones en ellos según sea necesario.

Supongamos que nos dan el siguiente conjunto de datos:

Python Datetime: una guía completa con ejemplos

Si revisamos los tipos de datos de la variable, veremos que la fecha y la hora se almacenan como una cadena. Por lo tanto, antes de realizar cualquier análisis, debemos convertir las columnas de fecha y hora a un formato adecuado.

Para ello, podemos utilizar el siguiente código:

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)

En este bloque de código, primero creamos una nueva columna 'DateTime' en su DataFrame concatenando las columnas 'Date' y 'Time'. Luego, aplicamos la función datetime.strptime a cada valor en esta nueva columna para convertir las cadenas de fecha y hora en objetos de fecha y hora. Finalmente, imprimimos el DataFrame para ver el resultado.

Python Datetime: una guía completa con ejemplos

Lo siguiente que nos gustaría hacer es calcular la diferencia entre dos eventos. Para ello podemos utilizar el siguiente código:

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

Este script de Python calculará la duración entre 'Evento1' y 'Evento2'.

Python Datetime: una guía completa con ejemplos

Finalmente, vamos a convertir los objetos de fecha y hora en una zona horaria diferente. Cuándo se puede lograr esto usando las funciones de zona horaria en el módulo de fecha y hora.

# 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)

En este código, creamos un objeto de zona horaria para UTC. A continuación, creamos una nueva columna en nuestro DataFrame llamada 'DateTime_UTC' aplicando una función lambda a nuestra columna 'DateTime'. Esto reemplazará la información de zona horaria de cada objeto de fecha y hora con UTC.

Python Datetime: una guía completa con ejemplos

A través del estudio de caso de ejemplo anterior, verá cómo las diversas funciones proporcionadas por el módulo DateTime funcionan juntas para manipular fechas y horas en un formato adecuado.

Ahora que está familiarizado con algunas de las funciones en el módulo de fecha y hora, avancemos y veamos algunas funciones adicionales que querrá usar a medida que asume proyectos más complejos.

Además de las funciones enumeradas anteriormente, hay muchas más funciones útiles que puede usar según el problema en cuestión. Los desarrolladores de Python a menudo mantienen una página de documentación abierta para buscar funciones que puedan satisfacer sus necesidades. ¡Y te sugerimos que hagas lo mismo!

Funciones adicionales de fecha y hora

En esta sección, discutiremos funciones adicionales en el módulo de fecha y hora de Python . Esto incluye recuperar nombres de días de la semana, meses y días de la semana, junto con la función ctime() .

Cómo recuperar los días de la semana a partir de una fecha

El módulo datetime viene con una función weekday() , que devuelve el día de la semana como un número entero (donde el lunes es 0 y el domingo es 6).

Para usar esta función, puede llamarla en un objeto de fecha o de fecha y hora.

import datetime

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

print(weekday_number)

La salida del código anterior se muestra en la siguiente imagen:

Python Datetime: una guía completa con ejemplos

La fecha local actual es el 23/05/2023 y el día de la semana es el lunes.

Cómo recuperar nombres de meses y días de la semana a partir de una fecha

datetime también le permite recuperar el nombre del mes y el día de la semana.

Puede usar la función strftime() , que da formato a un objeto de fecha o fecha y hora como una cadena.

El siguiente es un ejemplo de cómo usar la función strftime() para obtener el nombre del mes y el día de la semana:

import datetime

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

print(weekday_name)
print(month_name)

Este código imprimirá el nombre del día de la semana y el nombre del mes en la salida.

Python Datetime: una guía completa con ejemplos

Cómo usar la función Ctime

La función ctime() en el módulo de fecha y hora devuelve una representación de cadena de un objeto de fecha o de fecha y hora, con el formato "Day Mon DD HH:MM:SS YYYY".

ctime es un método para un objeto de fecha y hora , no una función independiente.

El siguiente es un ejemplo del uso de la función ctime en su código:

import datetime

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

print(formatted_date)

El código anterior devolverá una representación de cadena del objeto de fecha.

Python Datetime: una guía completa con ejemplos

Para obtener más información sobre cómo trabajar con datos de series temporales, eche un vistazo al siguiente vídeo:

Pensamientos finales

Como programador de Python, es importante dominar el módulo de fecha y hora. Es un conjunto de herramientas que le permite manejar fechas, horas e intervalos de tiempo. Estos son los elementos que encontrará con frecuencia en los datos del mundo real.

Necesitará este módulo para convertir cadenas en objetos de fecha y hora, manejar conversiones de zona horaria y realizar operaciones en fechas y horas.

¡Al aprender a usar el módulo de fecha y hora, estará mejor preparado para manejar estas tareas en sus propios proyectos!


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber