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 😀