Автор оригинала: Pankaj Kumar.
Модуль Python маятника представляет собой замену встроенной для встроенного модуля DateTime. Модуль Python маятника поддерживает часовые появления и предоставляет полезные методы для форматирования, анализа, анализа и дата времени манипуляций. Этот модуль предоставляет все особенности модуля Pytz и многое другое.
Модуль маятника Python
Мы можем установить модуль маятника, используя команду PIP.
pip install pendulum
Пример маятника Python
Мы можем использовать модуль маятника для создания объектов часового пояса и использовать его с помощью datetime.now ()
Функция для создания экземпляра TimeZone Aware DateTime.
from datetime import datetime import pendulum utc = pendulum.timezone('UTC') pst = pendulum.timezone('America/Los_Angeles') ist = pendulum.timezone('Asia/Calcutta') print(type(utc)) print('Current Date Time in UTC =', datetime.now(utc)) print('Current Date Time in PST =', datetime.now(pst)) print('Current Date Time in IST =', datetime.now(ist)) print(type(datetime.now(ist)))
Выход:
Current Date Time in UTC = 2018-09-25 09:16:45.031461+00:00 Current Date Time in PST = 2018-09-25 02:16:45.031501-07:00 Current Date Time in IST = 2018-09-25 14:46:45.031555+05:30
Давайте посмотрим, как использовать маятниковый модуль в качестве замены модуля DateTime. Однако, если вы уже используете модуль DateTime, то лучше их не смешивать.
utc_time = pendulum.now('UTC') print(type(utc_time)) print('Current Date Time in UTC =', utc_time)
Выход:
Current Date Time in UTC = 2018-09-25T09:16:45.031608+00:00
Преобразование часовых поясов
utc_time = pendulum.now('UTC') ist_time = utc_time.in_timezone('Asia/Calcutta') print(type(ist_time)) print('Current Date Time in IST =', ist_time) tz = pendulum.timezone('Europe/Paris') paris_time = tz.convert(ist_time) print('Current Date Time in Paris =', paris_time)
Выход:
Current Date Time in IST = 2018-09-25T14:46:45.031608+05:30 Current Date Time in Paris = 2018-09-25T11:16:45.031608+02:00
Дата времени манипуляции
Мы можем использовать Add () и вычесывать () функции на дату времени манипуляций.
utc_time.add(years=1) utc_time.subtract(months=2) print('Updated UTC Time', utc_time)
Выход: Обновлено UTC Time 2018-09-25T09: 16: 45.031608 + 00: 00
Дата Форматирование времени
Есть несколько полезных методов для преобразования времени даты в стандартную форматированную строку. Модуль маятника также имеет функцию STRFTIME (), где мы можем указать наш собственный формат.
print(utc_time.to_iso8601_string()) print(utc_time.to_formatted_date_string()) print(utc_time.to_w3c_string()) print(utc_time.to_date_string()) # supports strftime() too print(utc_time.strftime('%Y-%m-%d %H:%M:%S %Z%z'))
Выход:
2018-09-25T09:16:45.031608Z Sep 25, 2018 2018-09-25T09:16:45+00:00 2018-09-25 2018-09-25 09:16:45 UTC+0000
Строка разбора на сегодняшний день
Мы можем использовать функцию Parse () для анализа строки, имеющей обычно используемые форматы для объекта dateTime. Если вы хотите указать строку формата, затем используйте функцию_format ().
dt = pendulum.parse('2018-05-21T22:00:00') print(dt) dt = pendulum.parse('2018-05-21T22:00:00', tz='Europe/Paris') print(dt) # parsing using specified format string dt = pendulum.from_format('2018/05/21', 'YYYY/MM/DD') print(dt)
Выход:
2018-05-21T22:00:00+00:00 2018-05-21T22:00:00+01:00 2018-05-21T00:00:00+00:00
Продолжительность – замена Timedelta
time_delta = pendulum.duration(days=1, hours=10, years=2) print(time_delta) print('time_delta years =', time_delta.years) print('time_delta in seconds =', time_delta.in_seconds()) print('time_delta in words =', time_delta.in_words()) print('future date =', pendulum.now() + time_delta)
Выход:
2 years 1 day 10 hours time_delta years = 2 time_delta in seconds = 122400 time_delta in words = 2 years 1 day 10 hours future date = 2020-09-27T00:46:45.037866+05:30
Промежуток времени
current_date = pendulum.now() future_date = current_date.add(days=4) period_time = future_date - current_date print('period in words =', period_time.in_words()) # period is iterable with days for dt in period_time: print(dt)
Выход:
period in words = 4 days 2018-09-25T14:46:45.037972+05:30 2018-09-26T14:46:45.037972+05:30 2018-09-27T14:46:45.037972+05:30 2018-09-28T14:46:45.037972+05:30 2018-09-29T14:46:45.037972+05:30
Ссылка: Официальный веб-сайт