HOWTO · Python
Cómo convertir una cadena a datetime en Python
Demuestra cómo convertir una cadena a una fecha en Python
En esta página
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)