Delorean: una herramienta de conversión inteligente de formato de tiempo de Python muy práctica

DeLorean es un módulo de terceros para Python, desarrollado en base a pytz y dateutil, para manejar la conversión de formato de fecha y hora en Python.

Dado que la conversión de tiempo es un problema suficientemente sutil, DeLorean quería brindar una solución más limpia y menos complicada para cambiar, manipular y generar fechas y horas. Por ejemplo, para instanciar un objeto de tiempo en forma de cadena, Delorean solo necesita analizar la cadena especificada y convertirla sin declarar su formato.

En cuanto al origen del nombre del módulo Delorean, Delorean es el coche de ala de gaviota muy chulo de la película "Regreso al futuro". Utilizando el nombre del coche muy representativo de esta película como nombre de la biblioteca, el autor probablemente También quiere expresar el uso de esta biblioteca que le permite moverse libremente en el tiempo y el espacio sin restricciones.

Lo más inteligente de este módulo es que puede identificar automáticamente el formato de hora de la cadena y convertirlo en un objeto Delorean, y este objeto Delorean es el mismo que el objeto Datetime. Si te gusta este artículo, recuerda marcar, seguir y dar me gusta.

from delorean import parse
parse("2011/01/01 00:00:00 -0700")
# Delorean(datetime=datetime.datetime(2011, 1, 1, 0, 0), timezone=pytz.FixedOffset(-420))
parse("2018-05-06")
# Delorean(datetime=datetime.datetime(2018, 6, 5, 0, 0), timezone='UTC')

A continuación se presentará su uso básico.

1. Prepárate

Elija una de las siguientes formas de ingresar el comando para instalar dependencias :
1. Abra Cmd en el entorno de Windows (Inicio-Ejecutar-CMD).
2. Abra la Terminal en el entorno MacOS (comando+espacio para ingresar a la Terminal).
3. Si está utilizando el editor VSCode o Pycharm, puede usar directamente la Terminal en la parte inferior de la interfaz.

pip install Delorean

2. Uso básico de Delorean

Obtenga la hora actual fácilmente:

from delorean import Delorean

d = Delorean()
print(d)
# Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')

Convierta la hora en formato de fecha y hora a Delorean:

import datetime
from delorean import Delorean

d = Delorean()
print(d)
d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
# 这里默认的是UTC时间
print(d)
# Delorean(datetime=datetime.datetime(2021, 10, 6, 9, 5, 57, 611589), timezone='UTC')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')

Convertir a zona horaria nacional:

import datetime
from delorean import Delorean

d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d)
# Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai')

La salida es fecha y hora, la fecha no es un problema:

import datetime
from delorean import Delorean

d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d.datetime)
print(d.date)
# 2018-05-10 16:52:23.560811+08:00
# 2018-05-10

Ver marca de tiempo y hora UTC:

import datetime
from delorean import Delorean

d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d.epoch)
print(d.naive)
# 1525942343.560811
# 2018-05-10 08:52:23.560811

Inicialice Delorean con una marca de tiempo de Unix:

from delorean import epoch
d = epoch(1357971038.102223).shift("Asia/Shanghai")
print(d)
# Delorean(datetime=datetime.datetime(2013, 1, 12, 14, 10, 38, 102223), timezone='Asia/Shanghai')

Delorean admite sumas y restas de tiempo de timedelta. Delorean puede usar timedelta para sumar y restar para obtener un objeto de Delorean:

import datetime
from delorean import Delorean

d = Delorean(datetime=datetime.datetime(2018, 5, 10, 8, 52, 23, 560811), timezone='UTC')
d = d.shift("Asia/Shanghai")
print(d)
d2 = d + datetime.timedelta(hours=2)
print(d2)
d3 = d - datetime.timedelta(hours=3)
print(d3)
# Delorean(datetime=datetime.datetime(2018, 5, 10, 16, 52, 23, 560811), timezone='Asia/Shanghai')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 18, 52, 23, 560811), timezone='Asia/Shanghai')
# Delorean(datetime=datetime.datetime(2018, 5, 10, 13, 52, 23, 560811), timezone='Asia/Shanghai')

3. Uso avanzado de Delorean

Por lo general, no nos importa cuántas sutilezas o cuántos segundos, por lo que Delorean proporciona una forma muy conveniente de filtrar:

from delorean import Delorean

d = Delorean()
print(d)
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50, 597357), timezone='UTC')
d.truncate('second')
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0, 50), timezone='UTC')
d.truncate('hour')
# Delorean(datetime=datetime.datetime(2019, 3, 14, 4, 0), timezone='UTC')
d.truncate('month')
# Delorean(datetime=datetime.datetime(2019, 3, 1, 0, 0), timezone='UTC')
d.truncate('year')
# Delorean(datetime=datetime.datetime(2019, 1, 1, 0, 0), timezone='UTC')

Además, cuando se procesan cadenas en formato de fecha y hora, se deben marcar varios formatos para la conversión. En Delorean, no necesitamos ser tan problemáticos, solo analizarlo directamente:

from delorean import parse
parse("2011/01/01 00:00:00 -0700")
# Delorean(datetime=datetime.datetime(2011, 1, 1, 0, 0), timezone=pytz.FixedOffset(-420))
parse("2018-05-06")
# Delorean(datetime=datetime.datetime(2018, 6, 5, 0, 0), timezone='UTC')

artículo recomendado

Supongo que te gusta

Origin blog.csdn.net/qq_34160248/article/details/124215275
Recomendado
Clasificación