Cómo convertir una cadena a datetime en Python

Jinku Hu 30 enero 2023
  1. datetime.strptime() para convertir una cadena en datetime
  2. Python datetime.strptime() Ejemplos
Cómo convertir una cadena a datetime en Python

Este tutorial introduce cómo convertir string en datetime en Python y también lista algunos códigos de ejemplo para cubrir los formatos populares de datetime y string.

datetime.strptime() para convertir una cadena en datetime

En el tutorial anterior, hemos aprendido [cómo obtener la fecha y hora en formato de cadena usando el método datetime.strftime(). Usaremos el método datetime.strptime() para hacer la conversión de revere para obtener el objeto datetime. f y p en estos dos métodos significan format y parse respectivamente.

El método datetime.strptime() analiza la cadena de entrada con el formato datetime dado y devuelve el objeto datetime.

El ejemplo básico para usar este método strptime() se muestra a continuación,

from datetime import datetime

datetime.strptime("2018-01-31", "%Y-%m-%d")

El resultado será

datetime.datetime(2018, 1, 31, 0, 0)

Las directivas de los códigos de formato de cadena se enumeran aquí para su referencia

Directiva Significado Ejemplo
%a Día de la semana como nombre abreviado del lugar. Sun, Mon, …, Sat (en_US);So, Mo, …, Sa (de_DE)
%A Día de la semana como nombre completo del lugar. Domingo, lunes, …, sábado (en_US);Sonntag, Montag, …, Samstag (de_DE)
%w El día de la semana como un número decimal, donde 0 es el domingo y 6 es el sábado. 0, 1, …, 6
%d El día del mes como un número decimal con relleno cero. 01, 02, …, 31
%b Mes como nombre abreviado del lugar. Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE)
%B Mes como el nombre completo del lugar. Enero, febrero, …, diciembre (en_US);enero, febrero, …, diciembre (de_DE)
%m El mes como un número decimal con relleno cero. 01, 02, …, 12
%y Año sin siglo como número decimal con relleno cero. 00, 01, …, 99
%Y Año con el siglo como número decimal. 0001, 0002, …, 2013, 2014, …, 9998, 9999
%H La hora (reloj de 24 horas) como un número decimal con relleno cero. 00, 01, …, 23
%I Hora (reloj de 12 horas) como número decimal con relleno cero. 01, 02, …, 12
%p El equivalente local de AM o PM. AM, PM (en_US);am, pm (de_DE)
%M Minuto como un número decimal con relleno cero. 00, 01, …, 59
%S Segundo como un número decimal con relleno cero. 00, 01, …, 59
%f Microsegundo como número decimal, cero a la izquierda. 000000, 000001, …, 999999
%z Offset UTC en la forma ±HHMM[SS] (cadena vacía si el objeto es ingenuo). (vacío), +0000, -0400, +1030
%Z Nombre del huso horario (cadena vacía si el objeto es ingenuo). (vacío), UTC, EST, CST
%j Día del año como un número decimal con relleno cero. 001, 002, …, 366
%U El número de la semana del año (el domingo como primer día de la semana) como un número decimal con relleno cero. Todos los días del nuevo año que preceden al primer domingo se consideran en la semana 0. 00, 01, …, 53
%W Número de la semana del año (el lunes como primer día de la semana) como número decimal. Todos los días de un nuevo año que preceden al primer lunes se consideran en la semana 0. 00, 01, …, 53
%c Representación de la fecha y hora apropiadas del local. Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE)
%x La representación de la fecha apropiada del local. 08/16/88 (Ninguno);08/16/1988 (en_US);16.08.1988 (de_DE)
%X La representación del tiempo apropiado de la localidad. 21:30:00 (en_US);21:30:00 (de_DE)
%% Un carácter literal. %

Python datetime.strptime() Ejemplos

Formato 7-May-2013 de datetime

from datetime import datetime

dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)

Producción

datetime.datetime(2013, 5, 1, 0, 0)

31/12/2018 datetime formato

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

Producción

datetime.datetime(2013, 12, 31, 0, 0)

Mon, July 16 2018 datetime formato

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

Producción

datetime.datetime(2018, 7, 16, 0, 0)

Monday, July 16, 2018 20:01:56 datetime formato

from datetime import datetime

dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)

Producción :

datetime.datetime(2018, 7, 16, 20, 1, 56)
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Python String

Artículo relacionado - Python DateTime