El péndulo es una de las bibliotecas populares de Python DateTime para facilitar la manipulación de DateTime. Proporciona una API más limpia y fácil de usar. Simplifica el problema de manipulaciones de fechas complejas que involucran zonas horarias que no se manejan correctamente en instancias nativas de fecha y hora.
Hereda de la biblioteca de fecha y hora estándar, pero proporciona una mejor funcionalidad. Por lo tanto, puede introducir instancias de fecha y hora de Pendulums en proyectos que ya usan la clase de fecha y hora incorporada (a excepción de las bibliotecas que verifican el tipo de los objetos mediante el uso de la función de tipo como sqlite3).
Para instalar este módulo, ejecute este comando en su terminal:
pip install pendulum
Veamos los ejemplos sencillos:
Puede crear instancias de fecha y hora usando varios métodos como datetime(), local(),now(),from_format().
Ejemplo :
Python3
# import library import pendulum dt = pendulum.datetime(2020, 11, 27) print(dt) #local() creates datetime instance with local timezone local = pendulum.local(2020, 11,27) print(local) print(local.timezone.name)
Producción:
2020-11-27T00:00:00+00:00 2020-11-27T00:00:00+05:30 Asia/Calcutta
Conversión de zonas horarias
Puede convertir zonas horarias usando el método in_timezone() o usando la biblioteca de zonas horarias directamente. Consulte el siguiente ejemplo para una mejor comprensión.
Nota: UTC (Tiempo universal coordinado) es el estándar de tiempo principal por el cual el mundo regula los relojes y la hora.
Ejemplo :
Python3
# Importing library import pendulum # Getting current UTC time utc_time = pendulum.now('UTC') # Switching current timezone to # Kolkata timezone using in_timezone(). kolkata_time = utc_time.in_timezone('Asia/Kolkata') print('Current Date Time in Kolkata =', kolkata_time) # Generating Sydney timezone sydney_tz = pendulum.timezone('Australia/Sydney') # Switching current timezone to # Sydney timezone using convert(). sydney_time = sydney_tz.convert(utc_time) print('Current Date Time in Sydney =', sydney_time)
Producción :
Current Date Time in Kolkata = 2020-11-27T15:16:36.985136+05:30 Current Date Time in Sydney = 2020-11-27T20:46:36.985136+11:00
Manipulaciones de fecha y hora
Para la manipulación de fecha y hora, podemos usar los métodos add() y rest(). Cada método devuelve una nueva instancia de DateTime.
Ejemplo :
Python3
# Importing the library import pendulum # creating datetime instance dt = pendulum.datetime(2020, 11, 27) print(dt) # Manipulating datetime object using add() dt = dt.add(years=5) print(dt) # Manipulating datetime object using subtract() dt = dt.subtract(months = 1) print(dt) # Similarly you can add or subtract # months,weeks,days,hours,minutes # individually or all at a time. dt = dt.add(years=3, months=2, days=6, hours=12, minutes=30, seconds=45) print(dt)
Producción :
2020-11-27T00:00:00+00:00 2025-11-27T00:00:00+00:00 2025-10-27T00:00:00+00:00 2029-01-02T12:30:45+00:00
Formato de fecha y hora
Podemos convertir la fecha y la hora en una string con formato estándar utilizando los siguientes métodos.
- to_date_string()
- a_formatted_date_string()
- to_time_string()
- to_datetime_string()
- to_day_datetime_string()
El módulo Pendulum también tiene la función format() & strftime() donde podemos especificar nuestro propio formato.
Ejemplo :
Python3
import pendulum # Creating new DateTime instance dt = pendulum.datetime(2020, 11, 27, 12, 30, 15) print(dt) # Formatting date-time dt.to_day_datetime_string() formatted_str = dt.format('dddd Do [of] MMMM YYYY HH:mm:ss A') print(formatted_str) new_str = dt.strftime('%Y-%m-%d %H:%M:%S %Z%z') print(new_str)
Producción :
2020-11-27T12:30:15+00:00 Friday 27th of November 2020 12:30:15 PM 2020-11-27 12:30:15 UTC+0000
Analizar string hasta fecha y hora
La función parse() se usa para analizar una string que tiene formatos de uso común para el objeto de fecha y hora. Si desea pasar una string no estándar o más complicada, utilice la función from_format(). Sin embargo, si desea que la biblioteca recurra al analizador dateutil, debe pasar strict=False.
Python3
import pendulum dt = pendulum.parse('1997-11-21T22:00:00', tz = 'Asia/Calcutta') print(dt) # parsing of non standard string dt = pendulum.from_format('2020/11/21', 'YYYY/MM/DD') print(dt)
Producción :
1997-11-21T22:00:00+05:30 2020-11-21T00:00:00+00:00
Duración: reemplazo de timedelta
La clase Duration hereda de la clase timedelta nativa. Sin embargo, su comportamiento es ligeramente diferente.
Ejemplo :
Python3
import pendulum time_delta = pendulum.duration(days = 2, hours = 10, years = 2) print(time_delta) # Date when i am writing this code is 2020-11-27. print('future date =', pendulum.now() + time_delta)
Producción :
2 years 2 days 10 hours future date = 2022-11-30T04:38:01.256888+05:30
Período de tiempo
Cuando resta una instancia de DateTime de otra o usa el método diff(), devolverá una instancia de Period. Hereda de la clase Duration con el beneficio adicional de que conoce las instancias que la generaron para que pueda dar acceso a más métodos y propiedades.
Ejemplo 1 :
Python3
import pendulum starting = pendulum.datetime(2021, 1, 1) ending = starting.add(hours = 10) # subtracting date-time instances # to ge a period instance period = ending - starting period.hours
Producción :
10
Ejemplo 2:
Python3
import pendulum # You can create period instance # by using the period() method start = pendulum.datetime(2021, 1, 1) end = pendulum.datetime(2021, 1, 31) period = pendulum.period(start, end) period.days
Producción :
30
Publicación traducida automáticamente
Artículo escrito por tejalkadam18m y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA