Python String to DateTime: conversión y uso

Los objetos DateTime te sirven para realizar fácilmente cálculos de tiempo como sumar o restar intervalos de tiempo. La conversión de cadenas en objetos DateTime resulta fundamental para estructurar, analizar y representar de forma precisa información de tiempo al programar en Python.

Así funciona la conversión de un Python string a DateTime

Convertir un string de Python a DateTime es un proceso en el que cadenas de texto que contienen una fecha u hora se convierten en un objeto DateTime, esto es, una estructura de datos para representar y manipular información de fecha y hora. La conversión de una cadena en DateTime puede ser necesaria si trabajas en Python con datos de fecha y hora que figuran como cadena de caracteres.

Así, la información se convierte a un formato utilizable para realizar cálculos, comparaciones de fechas o formatear información de horas, por ejemplo. Los métodos de Python string format para concatenar expresiones también pueden serte útiles al trabajar con objetos DateTime.

Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Certificado SSL/DDoS incluido
  • Dominio y asesor personal incluidos

Convertir cadenas en objetos DateTime

La conversión de strings en objetos DateTime abarca distintas funciones y módulos, como la librería datetime y el método strptime().

Uso de strptime()

El método strptime() de la librería datetime se utiliza para convertir una cadena en un objeto de Python DateTime. Necesita dos argumentos: la cadena que se va a analizar y el formato de fecha u hora del string.

datetime.strptime(date_string, format)
python

datetime.datetime()

Con el método strptime() se puede convertir una cadena de texto en un objeto datetime.datetime teniendo en cuenta un formato específico de fecha y hora.

from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object) # Output: 2023-10-30 12:00:00
python

En este ejemplo, la cadena date_string se especifica como '2023-10-30 12:00:00' y el formato '%Y-%m-%d %H:%M:%S' define el orden y la apariencia de la fecha y la hora en la cadena. El método strptime() analiza la cadena según este formato y crea a partir de ella un objeto datetime.datetime, que se guarda después en la variable date_object.

A continuación, se explica lo que significa el formato '%Y-%m-%d %H:%M:%S':

  • %Y: cuatro dígitos del año;
  • %m: dos dígitos del mes;
  • %d: dos dígitos del día;
  • %H: hora (formato de 24 horas);
  • %M: minuto;
  • %S: segundo.

datetime.time()

Al convertir cadenas en un objeto datetime.time, se pueden representar horas sin fecha. Esto se puede realizar mediante el método strptime() de la clase datetime o dividiendo una cadena de tiempo en horas, minutos y segundos.

from datetime import datetime
time_string = '14::30::00'
time_object = datetime.strptime(time_string, '%H::%M::%S').time()
print(time_object) # Output: 14:30:00
python

Con '%H:%M:%S' se hace referencia al formato de horas, minutos y segundos. El método strptime() interpreta la cadena de hora según este formato y crea un objeto datetime.time.

datetime.date()

También puedes convertir un string en un objeto datetime.date utilizando el método strptime() de la clase datetime o dividiendo de forma manual de la cadena de fecha en año, mes y día.

from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Output: 2023-11-30
python

En el anterior ejemplo, '%Y-%m-%d' se refiere al formato de año, mes y día. El método strptime() analiza la cadena de fecha y crea un objeto datetime.date.

Resolución de errores relacionados con strptime()

Al utilizar el método strptime() para convertir un string de Python en DateTime, pueden surgir errores, especialmente si el formato especificado no coincide con el formato de la cadena de entrada. Echa un vistazo a algunos de los errores más comunes y averigua cómo solucionarlos:

  • ValueError: time data '...' does not match format '...'. Este error aparece cuando la cadena de entrada no coincide con el formato especificado. En este caso, debes asegurarte de que se está utilizando el patrón de formato correcto en strptime().

  • ValueError: unconverted data remains. Este error aparece cuando quedan datos sin representar después de intentar convertir la cadena. Revisa el patrón de formato para asegurarte de que coincide exactamente con la estructura de la cadena de entrada.

  • TypeError: strptime() argument 1 must be str, not .... Este error ocurre cuando el parámetro que se pasa a strptime() no es una cadena. Comprueba que el argumento que estás pasando sea un string que contenga el formato de fecha u hora.

Debes asegurarte de que el patrón de formato interprete correctamente todas las partes de la cadena de entrada (año, mes, día, hora, etc.). Podría haber diferencias en los separadores, el uso de mayúsculas o minúsculas y otros detalles entre el patrón de formato y la cadena de entrada.

¿Le ha resultado útil este artículo?
Page top