Manejo de fechas
Para trabajar con fechas en Python, el módulo más comúnmente utilizado es datetime
. Este módulo ofrece varias clases para manejar fechas y horas de manera efectiva. Las principales clases son datetime
, date
, y time
. A continuación, te proporcionaré una guía amplia sobre cómo trabajar con fechas en Python, incluyendo cómo crear, manipular y formatear fechas.
1. Importación del módulo datetime
Para trabajar con fechas en Python, debes importar el módulo datetime
:
import datetime
2. Clases principales
datetime.datetime
: Representa una fecha y hora combinadas.datetime.date
: Representa solo una fecha (año, mes y día).datetime.time
: Representa solo una hora (horas, minutos, segundos y microsegundos).
3. Creación de fechas y horas
-
Crear una fecha:
from datetime import date
# Crear una fecha específica
fecha = date(2024, 4, 24)
print(fecha) # Salida: 2024-04-24 -
Crear una hora:
from datetime import time
# Crear una hora específica
hora = time(15, 30, 45)
print(hora) # Salida: 15:30:45 -
Crear una fecha y hora combinadas:
from datetime import datetime
# Crear una fecha y hora específica
fecha_hora = datetime(2024, 4, 24, 15, 30, 45)
print(fecha_hora) # Salida: 2024-04-24 15:30:45
4. Obtener la fecha y hora actual
-
Fecha actual:
from datetime import date
fecha_actual = date.today()
print(fecha_actual) # Salida: (Fecha actual) -
Fecha y hora actual:
from datetime import datetime
fecha_hora_actual = datetime.now()
print(fecha_hora_actual) # Salida: (Fecha y hora actual)
5. Manipulación de fechas
-
Suma y resta de tiempo:
from datetime import datetime, timedelta
# Sumar 5 días a la fecha actual
nueva_fecha = datetime.now() + timedelta(days=5)
print(nueva_fecha)
# Restar 10 días de la fecha actual
nueva_fecha = datetime.now() - timedelta(days=10)
print(nueva_fecha) -
Diferencia entre fechas:
from datetime import datetime
fecha1 = datetime(2024, 4, 24)
fecha2 = datetime(2024, 5, 24)
diferencia = fecha2 - fecha1
print(diferencia) # Salida: 30 days, 0:00:00
6. Formateo de fechas
El método strftime()
se utiliza para formatear fechas:
from datetime import datetime
fecha_hora = datetime(2024, 4, 24, 15, 30, 45)
# Formatear fecha y hora
formato = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')
print(formato) # Salida: 2024-04-24 15:30:45
7. Análisis de cadenas de fechas
El método strptime()
se utiliza para analizar cadenas de fechas:
from datetime import datetime
cadena_fecha = '2024-04-24 15:30:45'
formato = '%Y-%m-%d %H:%M:%S'
fecha_hora = datetime.strptime(cadena_fecha, formato)
print(fecha_hora) # Salida: 2024-04-24 15:30:45
8. Zona horaria
El módulo pytz
se puede usar para manejar zonas horarias:
import pytz
from datetime import datetime
# Ejemplo de uso de zona horaria
zona_horaria = pytz.timezone('America/New_York')
fecha_hora_actual = datetime.now(zona_horaria)
print(fecha_hora_actual) # Salida: Fecha y hora en la zona horaria especificada
Formateo de fechas
El método strftime()
es una función de la clase datetime
que permite formatear fechas y horas en Python. Permite convertir una fecha y hora en una cadena de texto según un formato específico. El formato se define mediante una serie de códigos de formato que representan diferentes componentes de la fecha y la hora.
A continuación, te explicaré en detalle cómo utilizar strftime()
y los códigos de formato más comunes:
Uso básico de strftime()
- Para formatear una fecha y hora, primero necesitas crear un objeto
datetime
odate
. - Luego, puedes usar el método
strftime()
para convertir esa fecha u hora en una cadena de texto utilizando un formato específico.
from datetime import datetime
# Crear una fecha y hora específica
fecha_hora = datetime(2024, 4, 24, 15, 30, 45)
# Formatear la fecha y hora utilizando `strftime()`
formato = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')
print(formato) # Salida: 2024-04-24 15:30:45
Códigos de formato strftime()
A continuación, se presenta una lista de los códigos de formato más comunes que puedes usar con strftime()
:
%Y
: Año con cuatro dígitos (ejemplo: 2024).%y
: Año con dos dígitos (ejemplo: 24 para 2024).%m
: Mes con dos dígitos (ejemplo: 04 para abril).%B
: Nombre completo del mes (ejemplo: April).%b
: Abreviatura del nombre del mes (ejemplo: Apr).%d
: Día del mes con dos dígitos (ejemplo: 24).%A
: Nombre completo del día de la semana (ejemplo: Wednesday).%a
: Abreviatura del nombre del día de la semana (ejemplo: Wed).%H
: Hora en formato de 24 horas con dos dígitos (ejemplo: 15 para 3 p.m.).%I
: Hora en formato de 12 horas con dos dígitos (ejemplo: 03 para 3 p.m.).%p
: AM o PM.%M
: Minutos con dos dígitos (ejemplo: 30).%S
: Segundos con dos dígitos (ejemplo: 45).%f
: Microsegundos.%z
: Desplazamiento de la zona horaria en formato±HHMM
.%Z
: Nombre de la zona horaria.%j
: Día del año (ejemplo: 114 para el 24 de abril).%U
: Semana del año, donde el domingo es el primer día de la semana.%W
: Semana del año, donde el lunes es el primer día de la semana.%c
: Fecha y hora en formato completo (ejemplo: Wed Apr 24 15:30:45 2024).%x
: Fecha en formato local.%X
: Hora en formato local.
Ejemplo de uso de strftime()
from datetime import datetime
# Crear una fecha y hora específica
fecha_hora = datetime(2024, 4, 24, 15, 30, 45)
# Usar diferentes códigos de formato con `strftime()`
formato1 = fecha_hora.strftime('%Y-%m-%d')
formato2 = fecha_hora.strftime('%A, %B %d, %Y')
formato3 = fecha_hora.strftime('%H:%M:%S')
formato4 = fecha_hora.strftime('%I:%M %p')
print(formato1) # Salida: 2024-04-24
print(formato2) # Salida: Wednesday, April 24, 2024
print(formato3) # Salida: 15:30:45
print(formato4) # Salida: 03:30 PM