Los objetos DateTime te sirven para realizar fá­ci­l­me­n­te cálculos de tiempo como sumar o restar in­te­r­va­los de tiempo. La co­n­ve­r­sión de cadenas en objetos DateTime resulta fu­n­da­me­n­tal para es­tru­c­tu­rar, analizar y re­pre­se­n­tar de forma precisa in­fo­r­ma­ción de tiempo al programar en Python.

Así funciona la co­n­ve­r­sió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 co­n­vie­r­ten en un objeto DateTime, esto es, una es­tru­c­tu­ra de datos para re­pre­se­n­tar y manipular in­fo­r­ma­ción de fecha y hora. La co­n­ve­r­sión de una cadena en DateTime puede ser necesaria si trabajas en Python con datos de fecha y hora que figuran como cadena de ca­ra­c­te­res.

Así, la in­fo­r­ma­ción se convierte a un formato uti­li­za­ble para realizar cálculos, co­m­pa­ra­cio­nes de fechas o formatear in­fo­r­ma­ción de horas, por ejemplo. Los métodos de Python string format para co­n­ca­te­nar ex­pre­sio­nes también pueden serte útiles al trabajar con objetos DateTime.

Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos

Convertir cadenas en objetos DateTime

La co­n­ve­r­sió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 ar­gu­me­n­tos: 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 es­pe­cí­fi­co 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 es­pe­ci­fi­ca como '2023-10-30 12:00:00' y el formato '%Y-%m-%d %H:%M:%S' define el orden y la apa­rie­n­cia 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 co­n­ti­nua­ció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 re­pre­se­n­tar horas sin fecha. Esto se puede realizar mediante el método strptime() de la clase datetime o di­vi­die­n­do 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 re­fe­re­n­cia al formato de horas, minutos y segundos. El método strptime() in­te­r­pre­ta 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 uti­li­za­n­do el método strptime() de la clase datetime o di­vi­die­n­do 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.

Re­so­lu­ción de errores re­la­cio­na­dos con strptime()

Al utilizar el método strptime() para convertir un string de Python en DateTime, pueden surgir errores, es­pe­cia­l­me­n­te si el formato es­pe­ci­fi­ca­do 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 so­lu­cio­nar­los:

  • ValueError: time data '...' does not match format '...'. Este error aparece cuando la cadena de entrada no coincide con el formato es­pe­ci­fi­ca­do. En este caso, debes ase­gu­rar­te de que se está uti­li­za­n­do el patrón de formato correcto en strptime().

  • ValueError: unconverted data remains. Este error aparece cuando quedan datos sin re­pre­se­n­tar después de intentar convertir la cadena. Revisa el patrón de formato para ase­gu­rar­te de que coincide exac­ta­me­n­te con la es­tru­c­tu­ra 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 ase­gu­rar­te de que el patrón de formato in­te­r­pre­te co­rre­c­ta­me­n­te todas las partes de la cadena de entrada (año, mes, día, hora, etc.). Podría haber di­fe­re­n­cias en los se­pa­ra­do­res, el uso de ma­yú­s­cu­las o mi­nú­s­cu­las y otros detalles entre el patrón de formato y la cadena de entrada.

Ir al menú principal