Datetime
El módulo datetime
en Python es una biblioteca estándar que proporciona clases y funciones para trabajar con fechas y horas. Te permite realizar operaciones relacionadas con el tiempo, como crear, formatear y calcular diferencias entre fechas y horas. Aquí tienes algunas de las principales funciones y clases del módulo datetime
junto con ejemplos:
1. datetime.datetime
: Esta clase representa una fecha y hora. Puedes crear objetos datetime
para representar puntos específicos en el tiempo.
import datetime
# Crear un objeto datetime para la fecha y hora actual
ahora = datetime.datetime.now()
print(ahora) # Resultado: Fecha y hora actual en formato 'YYYY-MM-DD HH:MM:SS'
2. datetime.date
: Esta clase representa una fecha sin una hora específica. Puedes utilizarla para trabajar con fechas individuales.
import datetime
# Crear un objeto date para una fecha específica
fecha = datetime.date(2023, 9, 12)
print(fecha) # Resultado: '2023-09-12'
3. datetime.time
: Esta clase representa una hora sin una fecha específica.
import datetime
# Crear un objeto time para una hora específica
hora = datetime.time(15, 30)
print(hora) # Resultado: '15:30:00'
4. Operaciones con Fechas y Horas:
Puedes realizar operaciones matemáticas con objetos datetime
para calcular diferencias entre fechas, sumar o restar intervalos de tiempo, etc.
import datetime
# Calcular la diferencia entre dos fechas
fecha1 = datetime.date(2023, 9, 12)
fecha2 = datetime.date(2023, 9, 5)
diferencia = fecha1 - fecha2
print(diferencia.days) # Resultado: 7 días
# Sumar una hora a una hora específica
hora_inicial = datetime.time(15, 30)
intervalo = datetime.timedelta(hours=1)
nueva_hora = (datetime.datetime.combine(datetime.date.today(), hora_inicial) + intervalo).time()
print(nueva_hora) # Resultado: '16:30:00'
5. Formateo de Fechas y Horas:
Puedes formatear objetos datetime
, date
y time
como cadenas de texto en diferentes formatos.
import datetime
# Formatear una fecha como una cadena
fecha = datetime.date(2023, 9, 12)
cadena_fecha = fecha.strftime("%Y-%m-%d")
print(cadena_fecha) # Resultado: '2023-09-12'
# Formatear una hora como una cadena
hora = datetime.time(15, 30)
cadena_hora = hora.strftime("%H:%M")
print(cadena_hora) # Resultado: '15:30'
6. Análisis de Fechas y Horas:
Puedes analizar cadenas de texto en objetos datetime
, date
y time
.
import datetime
# Analizar una cadena de fecha en un objeto date
cadena_fecha = "2023-09-12"
fecha = datetime.datetime.strptime(cadena_fecha, "%Y-%m-%d").date()
print(fecha) # Resultado: '2023-09-12'
# Analizar una cadena de hora en un objeto time
cadena_hora = "15:30"
hora = datetime.datetime.strptime(cadena_hora, "%H:%M").time()
print(hora) # Resultado: '15:30:00'
El módulo datetime
es extremadamente útil para trabajar con fechas y horas en aplicaciones que involucran programación de calendarios, gestión de eventos, análisis de datos temporales y más. Puedes explorar sus capacidades más avanzadas en la documentación oficial de Python según tus necesidades específicas.
# Importar el módulo datetime
import datetime
# Obtener la fecha y hora actual
ahora = datetime.datetime.now()
print("Fecha y hora actual:", ahora)
# Obtener la fecha actual
fecha_actual = datetime.date.today()
print("Fecha actual:", fecha_actual)
# Obtener el año, mes y día de una fecha
print("Año:", fecha_actual.year)
print("Mes:", fecha_actual.month)
print("Día:", fecha_actual.day)
# Crear una fecha específica
fecha_personalizada = datetime.date(2023, 10, 3)
print("Fecha personalizada:", fecha_personalizada)
# Crear una fecha y hora específicas
fecha_hora_personalizada = datetime.datetime(2023, 10, 3, 14, 30)
print("Fecha y hora personalizada:", fecha_hora_personalizada)
# Formatear una fecha como una cadena de texto
fecha_formateada = fecha_actual.strftime("%d/%m/%Y")
print("Fecha formateada:", fecha_formateada)
# Crear una fecha a partir de una cadena de texto formateada
fecha_desde_cadena = datetime.datetime.strptime("03/10/2023", "%d/%m/%Y")
print("Fecha desde cadena:", fecha_desde_cadena)
# Realizar operaciones con fechas
diferencia_dias = fecha_personalizada - fecha_actual
print("Diferencia en días:", diferencia_dias.days)
# Obtener la fecha y hora en el futuro o pasado
dias_adelante = datetime.timedelta(days=7)
fecha_futura = fecha_actual + dias_adelante
print("Fecha en una semana:", fecha_futura)
# Obtener el día de la semana (0=Lunes, 6=Domingo)
print("Día de la semana:", fecha_actual.weekday())
# Crear un intervalo de tiempo específico
intervalo_tiempo = datetime.timedelta(hours=2, minutes=30)
print("Intervalo de tiempo:", intervalo_tiempo)
# Obtener la hora actual
hora_actual = datetime.datetime.now().time()
print("Hora actual:", hora_actual)
# Crear una hora específica
hora_personalizada = datetime.time(14, 30)
print("Hora personalizada:", hora_personalizada)
# Combinar una fecha y una hora
fecha_hora_combinada = datetime.datetime.combine(fecha_actual, hora_personalizada)
print("Fecha y hora combinadas:", fecha_hora_combinada)
La función strftime
del módulo datetime
en Python te permite formatear objetos de fecha y hora en cadenas de texto con diferentes formatos. Aquí tienes una lista de algunos de los formatos más comunes que puedes utilizar con strftime
:
-
Fecha completa:
%A
: Nombre completo del día de la semana (por ejemplo, "Monday").%a
: Nombre abreviado del día de la semana (por ejemplo, "Mon").%B
: Nombre completo del mes (por ejemplo, "January").%b
o%h
: Nombre abreviado del mes (por ejemplo, "Jan").%Y
: Año con cuatro dígitos (por ejemplo, "2023").%y
: Año con dos dígitos (por ejemplo, "23").%m
: Mes (01-12).%d
: Día del mes (01-31).
-
Hora:
%H
: Hora en formato de 24 horas (00-23).%I
: Hora en formato de 12 horas (01-12).%M
: Minutos (00-59).%S
: Segundos (00-59).%p
: AM o PM.
-
Día del año y semana:
%j
: Día del año (001-366).%U
: Número de semana del año (00-53), donde la semana comienza el domingo.%W
: Número de semana del año (00-53), donde la semana comienza el lunes.
-
Zona horaria:
%Z
: Nombre de la zona horaria.%z
: Desplazamiento de la zona horaria en formato "+HHMM" o "-HHMM" (por ejemplo, "+0530").
-
Fecha y hora completa:
%c
: Fecha y hora local completa.%x
: Fecha local completa.%X
: Hora local completa.
Puedes combinar estos formatos según tus necesidades para obtener el formato de fecha y hora deseado. Por ejemplo:
import datetime
ahora = datetime.datetime.now()
# Formatear la fecha y hora actual
formato_personalizado = ahora.strftime("%Y-%m-%d %H:%M:%S")
print(formato_personalizado) # Resultado: "2023-10-09 15:30:00"
En este ejemplo, se formatea la fecha y hora actual en un formato personalizado que incluye año, mes, día, hora, minutos y segundos.