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)
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 FacebookArtículo relacionado - Python String
- Eliminar comas de cadena en Python
- Cómo comprobar si una cadena está vacía de forma ptónica
- Convertir una cadena en nombre de variable en Python
- Cómo eliminar los espacios en blanco de una cadena en Python
- Cómo extraer números de una cadena en Python