Python strptime () - cadena al objeto de fecha y hora

En este artículo, aprenderá a crear un objeto de fecha y hora a partir de una cadena (con la ayuda de ejemplos).

El strptime()método crea un objeto de fecha y hora a partir de la cadena dada.

Nota: no puede crear datetimeobjetos a partir de cada cadena. La cadena debe tener un formato determinado.

Ejemplo 1: cadena a objeto de fecha y hora

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object)) 

Cuando ejecute el programa, la salida será:

 date_string = 21 de junio de 2018 tipo de date_string = date_object = 2018-06-21 00:00:00 tipo de date_object = 

¿Cómo funciona strptime ()?

El strptime()método de clase toma dos argumentos:

  • cadena (que se convierte a fecha y hora)
  • código de formato

Según la cadena y el código de formato utilizados, el método devuelve su datetimeobjeto equivalente .

En el ejemplo anterior:

Aquí,

  • %d- Representa el día del mes. Ejemplo: 01, 02,…, 31
  • %B- Nombre completo del mes. Ejemplo: enero, febrero, etc.
  • %Y- Año en cuatro dígitos. Ejemplo: 2018, 2019 etc.

Ejemplo 2: cadena al objeto de fecha y hora

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

Cuando ejecute el programa, la salida será:

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

Lista de códigos de formato

La siguiente tabla muestra todos los códigos de formato que puede utilizar.

Directiva Sentido Ejemplo
%a Nombre abreviado del día de la semana. Dom, lun,…
%A Nombre completo del día de la semana. Domingo Lunes,…
%w Día de la semana como número decimal. 0, 1,…, 6
%d Día del mes como decimal con relleno de ceros. 01, 02,…, 31
%-d Día del mes como número decimal. 1, 2,…, 30
%b Nombre del mes abreviado. Ene, feb,…, dic
%B Nombre del mes completo. Enero febrero,…
%m Mes como un número decimal con relleno de ceros. 01, 02,…, 12
%-m Mes como número decimal. 1, 2,…, 12
%y Año sin siglo como número decimal con relleno de ceros. 00, 01,…, 99
%-y Año sin siglo como número decimal. 0, 1,…, 99
%Y Año con siglo como número decimal. 2013, 2019 etc.
%H Hora (reloj de 24 horas) como un número decimal relleno con ceros. 00, 01,…, 23
%-H Hora (reloj de 24 horas) como número decimal. 0, 1,…, 23
%I Hora (reloj de 12 horas) como un número decimal con relleno de ceros. 01, 02,…, 12
%-I Hora (reloj de 12 horas) como número decimal. 1, 2,… 12
%p AM o PM de la configuración regional. AM PM
%M Minuto como un número decimal con relleno de ceros. 00, 01,…, 59
%-M Minuto como número decimal. 0, 1,…, 59
%S Segundo como un número decimal con relleno de ceros. 00, 01,…, 59
%-S Segundo como número decimal. 0, 1,…, 59
%f Microsegundos como número decimal, relleno con ceros a la izquierda. 000000 - 999999
%z Desplazamiento UTC en la forma + HHMM o -HHMM.
%Z Nombre de la zona horaria.
%j Día del año como un número decimal relleno con ceros. 001, 002,…, 366
%-j Día del año como número decimal. 1, 2,…, 366
%U Número de semana del año (domingo como primer día de la semana). Todos los días de un año nuevo que preceden al primer domingo se consideran de la semana 0. 00, 01,…, 53
%W Número de semana del año (el lunes como primer día de la semana). Todos los días de un año nuevo que preceden al primer lunes se consideran de la semana 0. 00, 01,…, 53
%c Representación apropiada de la fecha y la hora. Lun 30 de septiembre 07:06:05 2013
%x Representación de fecha apropiada de la configuración regional. 30/09/13
%X Representación de tiempo apropiada de la configuración regional. 07:06:05
%% Un carácter '%' literal. %

ValueError en strptime ()

Si la cadena (primer argumento) y el código de formato (segundo argumento) pasados ​​al strptime()no coinciden, obtendrá ValueError. Por ejemplo:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Si ejecuta este programa, obtendrá un error.

 ValueError: los datos de tiempo '12 / 11/2018 'no coinciden con el formato'% d% m% Y ' 

Lecturas recomendadas: Python strftime ()

Articulos interesantes...