PNL | Uso de dateutil para analizar fechas.

El módulo analizador puede analizar strings de fecha y hora en muchos más formatos. No puede haber mejor biblioteca que dateutil para analizar fechas y horas en Python. Para buscar las zonas horarias, el módulo tz proporciona todo. Cuando estos módulos se combinan, hacen que sea muy fácil analizar strings en objetos de fecha y hora que tengan en cuenta la zona horaria.

Instalación:
dateutil se puede instalar usando pip o easy_install, es decir, sudo pip install dateutil==2.0 o sudo easy_install dateutil==2.0 . Se requiere la versión 2.0 para compatibilidad con Python 3. La documentación completa se puede encontrar en http://labix.org/python-dateutil .

Código: ejemplos de análisis

# importing library
from dateutil import parser
  
print (parser.parse('Thu Sep 25 10:36:28 2010'))
  
print (parser.parse('Thursday, 25. September 2010 10:36AM'))
  
print (parser.parse('9 / 25 / 2010 10:36:28'))
  
print (parser.parse('9 / 25 / 2010'))
  
print (parser.parse('2010-09-25T10:36:28Z'))

Producción :

datetime.datetime(2010, 9, 25, 10, 36, 28)
datetime.datetime(2010, 9, 25, 10, 36)
datetime.datetime(2010, 9, 25, 10, 36, 28)
datetime.datetime(2010, 9, 25, 0, 0)
datetime.datetime(2010, 9, 25, 10, 36, 28, tzinfo=tzutc())

Todo lo que se necesita es importar el módulo analizador y llamar a la función parse() con una string de fecha y hora. El analizador puede devolver un objeto de fecha y hora sensato, pero no puede analizar la string, generará un ValueError.
Cómo funciona :

  • El analizador, en lugar de buscar tokens reconocibles, adivina a qué se refieren esos tokens. No utiliza expresiones regulares.
  • El orden de estos tokens es importante, ya que usa un formato de fecha que se parece a Mes/Día/Año (el orden predeterminado), mientras que otros usan un formato de Día/Mes/Año.
  • La función parse() toma un argumento de palabra clave opcional, dayfirst, que por defecto es False para solucionar este problema.
  • Puede analizar correctamente las fechas en este último formato si se establece en True.
parser.parse('16 / 6/2019', dayfirst = True)

Producción :

datetime.datetime(2016, 6, 16, 0, 0)

Otro problema de pedido puede ocurrir con años de dos dígitos. pero ’11-6-19′ es un formato de fecha ambiguo. Dado que dateutil tiene por defecto el formato Mes-Día-Año, ’11-6-19′ se analiza en el año 2019. Pero si yearfirst = True se pasa a parse(), se puede analizar en el año 2011.

print (parser.parse('11-6-19'))
print (parser.parse('10-6-25', yearfirst = True))

Producción :

datetime.datetime(2019, 11, 6, 0, 0)
datetime.datetime(2011, 6, 19, 0, 0)

El analizador dateutil también puede realizar un análisis confuso y permite ignorar caracteres extraños en una string de fecha y hora. parse() generará un ValueError con el valor predeterminado de False, cuando encuentre tokens desconocidos. Por lo general, se puede devolver un objeto de fecha y hora, si fuzzy = True.

Publicación traducida automáticamente

Artículo escrito por mathemagic y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *