Mostrando entradas con la etiqueta datetime. Mostrar todas las entradas
Mostrando entradas con la etiqueta datetime. Mostrar todas las entradas

jueves, 2 de octubre de 2025

Lenguajes. Python.

Módulo datetime

Mediante datetime podemos manejar fechas (date) y horas (time) de forma sencilla y eficiente. No es el único módulo que trabaja con este tipo de datos, pero posiblemente sí sea el más conocido y empleado.

Podríamos decir mucho de datetime, ya que es mucho lo que este módulo contiene, pero nos vamos a limitar a tratar sobre lo fundamental y de aquello que posiblemente más usemos en nuestros script. Puedes consultar esta página para más detalle (1). Este módulo incorpora tres componentes principales: time, date ydatetime, cuyas principales utilidades son:

  • Facilitar el acceso a los diferentes componentes de la referencia temporal (año, día, mes, hora, minuto, segundo, milisegundo)
  • Convertir cadenas con formato de fecha a los tipos referidos
  • Realizar el proceso inverso, esto es, convertir expresiones de los tipos time, date y datetime en cadenas formateadas
  • Realizar comparaciones y cálculos con fechas, como sumar o restar fechas

Voy a plantear, en lo que resta de entrada y a modo de ejemplos, algunas aplicaciones de datetime que me parecen de especial e inmediato interés para aplicar en la creación de script. Empezaré por el modo de importar el módulo y seguiré por algunas cuestiones que considero más comunes.

Para importar datetime tengo dos opciones:
  • Importar el módulo al completo import datetime
  • O importar cada componente de forma específica from datetime import date, time, datetime

La segunda es la forma más recomendable de proceder ya que nos permite diferenciar cada uno de los componentes de la clase con el que deseemos trabajar, incluyendo otros que ahora no mostramos.

Caso 1. Transformar a datetime una fecha dada como cadena.

Cuando usamos input() para la entrada de una fecha, lo que hacemos es proporcionar una cadena de texto, y en Python, al contrario que en otros lenguajes (2), no existe una función de conversión directa a unidad de tiempo, al margen de módulos como datetime, de ahí el interés por aprender a realizar este tipo de transformaciones.

Supongamos entonces que pido la fecha mediante input(), indicando el formato deseado: fecha = input("Dime la fecha (dd/mm/aaa)"). Depues la transformo en un objeto date mediante la función strptime() (fecha_date= datetime.strptime(fecha,'%d/%m/%Y')) Observa que en el parámetro formato utilizo el mismo fomrato que he pedido en la entrada.

Caso 2. Acceder a los componentes de la fecha.

Este acceso es la base para realizar manipulaciones y cálculos de diferente tipo. Partiendo de la trasformación anterior (variable fecha_date) es suficiente con aplicar las instrucciones año = fecha_date.year, mes = fecha_date.month y dia = fecha_date.day para obtener los datos que deseamos.

Caso 3. Conocer el día y la hora actuales.

Con frecuencia nos interesa conocer la fecha y hora actuales del sistema sin tener que introducirla por teclado. Para ello haremos uso de algunas funciones disponibles en datetime (3): hoy = date.today() y ahora = datetime.now()

Faltan muchas instrucciones por explicar, ya que datetime es una clase muy extensa, así que posiblemente tengamos que realizar alguna que otra entrada más sobre este módulo, o sobre otros que también trabajan con unidades temporales, como time o calendar.

Nota:

1En ella, entre otras muchas cosas, encontrarás enlaces a otros módulos Python que también trabajan con unidades temporales, como time y calendar, que son los más conocidos. Otra referencia de interés, en este caso directamente orientada a la práctica, es página de Alf. Muy recomendable.

2Como es el caso de OOo Basic (CDate())

3Mientras que today() pertenece al objeto date, now() pertenece al objeto datetime.