Python strptime()
Python strptime()
En este artículo, aprenderá a crear un objeto de fecha y hora a partir de una cadena (con la ayuda de ejemplos).
Video:Fechas y Horas en Python
El strptime()
El método crea un objeto de fecha y hora a partir de la cadena dada.
datetime
objeto 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 June, 2018 type of date_string = <class 'str'> date_object = 2018-06-21 00:00:00 type of date_object = <class 'datetime.datetime'>
¿Cómo funciona strptime()?
El strptime()
El método de clase toma dos argumentos:
- cadena (que se convierte en fecha y hora)
- código de formato
Según la cadena y el código de formato utilizado, el método devuelve su equivalente datetime
objeto.
En el ejemplo anterior:
Aquí,
%d
- Representa el día del mes. Ejemplo: 01, 02, ..., 31%B
- Nombre del mes completo. Ejemplo: enero, febrero, etc.%Y
- Año en cuatro dígitos. Ejemplo: 2018, 2019, etc.
Ejemplo 2:cadena a 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 | Significado | 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 ceros. | 01, 02, ..., 31 |
%-d | Día del mes como número decimal. | 1, 2, ..., 30 |
%b | Nombre abreviado del mes. | Ene, Feb, ..., Dic |
%B | Nombre completo del mes. | enero, febrero, ... |
%m | Mes como un número decimal con ceros. | 01, 02, ..., 12 |
%-m | Mes como número decimal. | 1, 2, ..., 12 |
%y | Año sin siglo como número decimal con 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 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 ceros. | 01, 02, ..., 12 |
%-I | Hora (reloj de 12 horas) como número decimal. | 1, 2, ... 12 |
%p | AM o PM de la localidad. | AM, PM |
%M | Minuto como un número decimal con ceros. | 00, 01, ..., 59 |
%-M | Minutos como número decimal. | 0, 1, ..., 59 |
%S | Segundo como un número decimal con ceros. | 00, 01, ..., 59 |
%-S | Segundo como número decimal. | 0, 1, ..., 59 |
%f | Microsegundo como número decimal, con ceros a la izquierda. | 000000 - 999999 |
%z | Compensación UTC en la forma +HHMM o -HHMM. | |
%Z | Nombre de la zona horaria. | |
%j | Día del año como número decimal 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 nuevo año que preceden al primer domingo se consideran en la semana 0. | 00, 01, ..., 53 |
%W | Número de semana del año (lunes como primer día de la semana). 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 fecha y hora adecuada de la configuración regional. | Lunes 30 de septiembre 07:06:05 2013 |
%x | Representación de fecha apropiada de la localidad. | 30/09/13 |
%X | Representación de tiempo apropiada de la localidad. | 07:06:05 |
%% | Un carácter '%' literal. | % |
ValorError en strptime()
Si la cadena (primer argumento) y el código de formato (segundo argumento) se pasan al strptime()
no coincide, 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: time data '12/11/2018' does not match format '%d %m %Y'
Lecturas recomendadas: Python strftime()
python