Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominar strptime() en Python: Parsing Preciso de Fechas desde Cadenas

Python strptime(): Convertir Cadenas a Objetos Datetime

Esta guía muestra cómo crear objetos datetime a partir de cadenas usando el método datetime.strptime() de Python, con ejemplos prácticos y una referencia completa de códigos de formato.

Video: Fechas y Horas en Python

Mira el tutorial oficial de Python para profundizar en el manejo de fechas y horas.

El método strptime() crea un objeto datetime a partir de una cadena que sigue un formato especificado.

Nota: No toda cadena puede analizarse; la entrada debe coincidir exactamente con el código de formato.


Ejemplo 1: Convertir una Cadena de Fecha Simple

from datetime import datetime

date_string = "21 June, 2018"
print("date_string =", date_string)
print("tipo de date_string =", type(date_string))

date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("tipo de date_object =", type(date_object))

Al ejecutar el programa, la salida será:

date_string = 21 June, 2018
tipo de date_string = <class 'str'>
date_object = 2018-06-21 00:00:00
tipo de date_object = <class 'datetime.datetime'>

¿Cómo funciona strptime()?

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

Basándose en estas entradas, el método devuelve un objeto datetime que representa el mismo momento en el tiempo.

En el ejemplo anterior, el código de formato %d %B, %Y significa:


Ejemplo 2: Analizar Fechas Ambiguas

from datetime import datetime

dt_string = "12/11/2018 09:15:32"
# Suponiendo formato día/mes/año
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)

# Suponiendo formato mes/día/año
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

El programa produce:

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

Lista Completa de Códigos de Formato

La tabla siguiente resume todas las directivas que puedes usar con strptime(). Para la documentación completa, consulta la guía oficial del módulo datetime de Python.

DirectivaSignificadoEjemplo
%aNombre abreviado del día de la semana.Dom, Lun, ...
%ANombre completo del día de la semana.Domingo, Lunes, ...
%wDía de la semana como número decimal.0, 1, ..., 6
%dDía del mes (con ceros a la izquierda).01, 02, ..., 31
%-dDía del mes (sin relleno).1, 2, ..., 30
%bNombre abreviado del mes.Ene, Feb, ..., Dic
%BNombre completo del mes.Enero, Febrero, ...
%mNúmero de mes (con ceros a la izquierda).01, 02, ..., 12
%-mNúmero de mes (sin relleno).1, 2, ..., 12
%yAño sin siglo (con ceros a la izquierda).00, 01, ..., 99
%-yAño sin siglo (sin relleno).0, 1, ..., 99
%YAño con siglo.2013, 2019, ...
%HHora (reloj de 24h, con ceros a la izquierda).00, 01, ..., 23
%-HHora (reloj de 24h, sin relleno).0, 1, ..., 23
%IHora (reloj de 12h, con ceros a la izquierda).01, 02, ..., 12
%-IHora (reloj de 12h, sin relleno).1, 2, ..., 12
%pAM o PM según la configuración regional.AM, PM
%MMinutos (con ceros a la izquierda).00, 01, ..., 59
%-MMinutos (sin relleno).0, 1, ..., 59
%SSegundos (con ceros a la izquierda).00, 01, ..., 59
%-SSegundos (sin relleno).0, 1, ..., 59
%fMicrosegundos (con ceros a la izquierda).000000 – 999999
%zDesplazamiento UTC (+HHMM o –HHMM).
%ZNombre de la zona horaria.
%jDía del año (con ceros a la izquierda).001, 002, ..., 366
%-jDía del año (sin relleno).1, 2, ..., 366
%UNúmero de semana (domingo primero).00, 01, ..., 53
%WNúmero de semana (lunes primero).00, 01, ..., 53
%cFecha y hora según la configuración regional.Lun Sep 30 07:06:05 2013
%xFecha según la configuración regional.09/30/13
%XHora según la configuración regional.07:06:05
%%Signo de porcentaje literal.%

Error Común: ValueError

Si la cadena y el código de formato no coinciden, strptime() lanza un ValueError. Por ejemplo:

from datetime import datetime

date_string = "12/11/2018"  # Formato incorrecto – espera día mes año
date_object = datetime.strptime(date_string, "%d %m %Y")
print("date_object =", date_object)

Ejecutar este código produce:

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

Lectura Recomendada: Python strftime()

python

  1. Palabras clave e identificadores en Python: Dominando palabras reservadas y convenciones de nomenclatura
  2. Dominando tipos de datos en Python: Guía práctica
  3. Dominando operadores en Python: Guía completa
  4. Dominando la sentencia pass en Python: Guía práctica
  5. Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
  6. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  7. Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
  8. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  9. Expresiones Regulares en Python (Módulo re) – Guía Práctica
  10. Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
  11. Dominar el Módulo time de Python: Funciones, Structs y Ejemplos Prácticos