Manejo de fechas con Arrow

218 0

Arrow es una librería de Python que ofrece un enfoque sensato y amigable para los humanos para crear, manipular, formatear y convertir fechas, horas y marcas de tiempo. Implementa y actualiza el tipo de fecha y hora, eliminando los vacíos en la funcionalidad y proporcionando una API de módulo inteligente que admite muchos escenarios de creación comunes. En pocas palabras, le ayuda a trabajar con fechas y horas con menos importaciones y mucho menos código.

Arrow lleva el nombre de la flecha del tiempo (Arrow of time) y se inspira en gran medida en moment.js y requests.

Features

  • Completamente implementado e integrado para reemplazar datetime
  • Soporte para Python 3.6+
  • Reconocimiento de zonas horarias y UTC por default.
  • Opciones de creación simple para varios escenarios simples de entrada.
  • Formateo y analizador automático de cadenas de texto.
  • Soporte para ISO-8601
  • Conversor de zonas horarias.
  • Soporte para dateutil, pytz y objetos ZoneInfo tzinfo.
  • Humanizar fechas.
  • entre otros…

¿Cómo lo instalo?

La instalación es muy simple y se realiza de la siguiente manera:

$ pip install -U arrow

Ejemplos de uso

>>> import arrow
>>> arrow.get('2013-05-11T21:23:58.970460+07:00')
<Arrow [2013-05-11T21:23:58.970460+07:00]>

>>> utc = arrow.utcnow()
>>> utc
<Arrow [2013-05-11T21:23:58.970460+00:00]>

>>> utc = utc.shift(hours=-1)
>>> utc
<Arrow [2013-05-11T20:23:58.970460+00:00]>

>>> local = utc.to('US/Pacific')
>>> local
<Arrow [2013-05-11T13:23:58.970460-07:00]>

>>> local.timestamp()
1368303838.970460

>>> local.format()
'2013-05-11 13:23:58 -07:00'

>>> local.format('YYYY-MM-DD HH:mm:ss ZZ')
'2013-05-11 13:23:58 -07:00'

>>> local.humanize()
'an hour ago'

>>> local.humanize(locale='ko-kr')
'한시간 전'

Otros ejemplos

Parsear un texto y convertirlo a fecha:

>>> arrow.get('2013-05-05 12:30:45', 'YYYY-MM-DD HH:mm:ss')
<Arrow [2013-05-05T12:30:45+00:00]>

Buscar una fecha dentro de un string:

>>> arrow.get('June was born in May 1980', 'MMMM YYYY')
<Arrow [1980-05-01T00:00:00+00:00]>

Reemplazar valores en un objeto arrow:

>>> arw = arrow.utcnow()
>>> arw
<Arrow [2013-05-12T03:29:35.334214+00:00]>

>>> arw.replace(hour=4, minute=40)
<Arrow [2013-05-12T04:40:35.334214+00:00]>

Formatear un texto:

>>> arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
'2013-05-07 05:23:16 -00:00'

Humanizar con relación a «ahora»:

>>> past = arrow.utcnow().shift(hours=-1)
>>> past.humanize()
'an hour ago'

¡Wow!, Puede ver un gran aliado en los proyectos ¿verdad?

Digamos que Arrow puede ser lo equivalente a moment.js pero para nosotros los que estamos más enfocados en el BackEnd.

Si te ha gustado esta nota comparte y/o deja tu comentario en esta publicación 😀

Deja una respuesta