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