Cómo trabajar con fechas en Python

Python - Trabajar con Fechas

Trabajar con fechas y horas es un aspecto crucial en muchas aplicaciones, desde la gestión de eventos hasta la manipulación de datos en bases de datos. Python nos ofrece varias herramientas poderosas y sencillas para manejar fechas y horas.

En este artículo exploraremos los módulos más utilizados para trabajar con fechas en Python. Y para comprender a fondo del concepto, presentaré prácticos para que puedas aplicarlos.

El módulo datetime: la herramienta esencial para fechas en Python

El módulo datetime es uno de los más comunes para trabajar con fechas y horas en Python. Este módulo ofrece clases para manipular fechas, tiempos y combinaciones de ambos. Aquí te muestro cómo funciona:

Para importar el módulo se requiere una sola línea de código:

import datetime

Crear y manipular fechas

Para crear una fecha en Python, utilizamos la clase date. Esta clase representa una fecha en el formato AAAA-MM-DD. En el ejemplo que veremos a continuación importaremos date de datetime, asignaremos una fecha (separando por comas año, mes y día) y la mostraremos con print().

from datetime import date

# Crear una fecha específica
mi_fecha = date(2024, 9, 20)
print(mi_fecha)  # Salida: 2024-09-20

Si necesitamos obtener la fecha actual, puedes usar el método today():

hoy = date.today()
print(hoy)  # Salida: La fecha actual

Por su parte, la clase time se utiliza para representar tiempos sin fechas. Puede ser útil para aplicaciones que requieren trabajar con horas específicas del día.

from datetime import time

mi_hora = time(14, 30, 0)
print(mi_hora)  # Salida: 14:30:00

Fecha y hora

Si necesitas trabajar tanto con fechas como con horas, la clase datetime será tu mejor opción.

from datetime import datetime

# Crear una fecha y hora específica
mi_fecha_hora = datetime(2024, 9, 20, 14, 30)
print(mi_fecha_hora)  # Salida: 2024-09-20 14:30:00

Para obtener la fecha y hora actual podemos escribir un código como el que vemos a continuación:

ahora = datetime.now()
print(ahora)  # Salida: La fecha y hora actual

Formatear fechas con strftime

Cuando trabajamos con fechas, es común que necesitemos mostrarlas en formatos específicos. La función strftime te permite formatear fechas en distintos formatos.

formato_personalizado = ahora.strftime('%d/%m/%Y %H:%M:%S')
print(formato_personalizado)  # Salida: 18/09/2024 14:30:00

Algunos formatos comunes:

  • %Y: Año con 4 dígitos.
  • %m: Mes (01-12).
  • %d: Día del mes (01-31).
  • %H: Hora en formato de 24 horas (00-23).
  • %M: Minutos (00-59).
  • %S: Segundos (00-59).

Trabajar con diferencias de tiempo y parsear fechas

El módulo timedelta es útil cuando necesitas realizar cálculos con fechas, como agregar o restar días, horas, minutos, etc.

from datetime import timedelta

# Crear una diferencia de 5 días
cinco_dias = timedelta(days=5)

# Sumarle 5 días a la fecha actual
nueva_fecha = hoy + cinco_dias
print(nueva_fecha)  # Salida: Fecha 5 días después de hoy

También puedes restar días o incluso calcular la diferencia entre dos fechas:

fecha_futura = date(2024, 12, 25)
diferencia = fecha_futura - hoy
print(diferencia.days)  # Salida: Número de días entre hoy y Navidad 2024

Cuando recibemos una fecha en formato de cadena, puedes convertirla en un objeto datetime usando strptime.

fecha_str = '20/09/2024 14:30:00'
fecha_objeto = datetime.strptime(fecha_str, '%d/%m/%Y %H:%M:%S')
print(fecha_objeto)  # Salida: 2024-09-20 14:30:00

En conclusión

Trabajar con fechas en Python puede parecer complicado al principio, pero con las herramientas correctas, se vuelve un proceso muy manejable. El módulo datetime cubre la mayoría de las necesidades, desde la creación y manipulación de fechas hasta el formateo.

Dominar estas habilidades nos permite manejar mejor cualquier proyecto que involucre tiempos y fechas, una necesidad común en la programación actual.

Si te interesa aprender más sobre Python escribime.

Más sobre Programación


Acerca de

Autor de los libros: Webmaster Profesional, HTML5: Comprenda el cambio y Apps HTML5 para móviles. Soy especialista en Desarrollo Web. Realizo proyectos basados en Inteligencia Artificial. Colaboré como autor y editor de contenidos para revistas, colecciones y diversos medios impresos y digitales. Brindo capacitaciones, clases de formación y consultorías sobre lenguajes de programación y herramientas para Desarrollo Web y móvil en modalidad online y presencial.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*