Рубрики
Без рубрики

Python TimeDelta

Python TimeDelta, Python TimeDelta Пример, Операции Python TimeDelta, Python TimeDelta DateTime, Как получить будущие и прошлые даты в Python, добавить даты

Автор оригинала: Pankaj Kumar.

Объект Python TimeDelta используется для простых манипуляций DateTime простым способом. Класс TimeDelta является частью модуля DateTime.

Python TimeDelta

Объект Python TimeDelta представляет собой продолжительность времени. Мы можем создать свой объект, используя следующий заводский метод.

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

Обратите внимание, что функция TimeDelta () принимает ключевые аргументы. Все аргументы являются необязательными и по умолчанию до 0. Аргументы могут быть целыми числами или поплавками и могут быть положительными или отрицательными.

Объект TimeDelta поддерживает математические операции, такие как добавление, вычитание, умножение и т. Д. Использование основных операторов, поэтому его очень легко использовать. Это в основном используется для получения объекта DateTime с какой-то датой и временем дельты.

Пример Python TimeDelta

Давайте посмотрим на некоторые примеры получения будущих дат и прошлых дат, используя объект TimeDelta.

from datetime import datetime, timedelta

current_datetime = datetime.now()

# future dates
one_year_future_date = current_datetime + timedelta(days=365)

print('Current Date:', current_datetime)
print('One year from now Date:', one_year_future_date)

# past dates
three_days_before_date = current_datetime - timedelta(days=3)
print('Three days before Date:', three_days_before_date)

Выход:

Current Date: 2018-09-18 12:33:30.656394
One year from now Date: 2019-09-18 12:33:30.656394
Three days before Date: 2018-09-15 12:33:30.656394

Python TimeDelta с датой и временем

Python TimeDelta поддерживает дополнение и вычитание с объектом даты.

dt = current_datetime.date()
print('Current Date:', dt)
dt_tomorrow = dt + timedelta(days=1)
print('Tomorrow Date:', dt_tomorrow)

Выход:

Current Date: 2018-09-18
Tomorrow Date: 2018-09-19

Тем не менее, TimeDelta не поддерживает те же операции со временным объектом.

tm = current_datetime.time()
print('Current Time:', tm)
tm_after_30_mins = tm + timedelta(minutes=30)

Приведенный выше код будет давать следующее сообщение об ошибке.

TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'

Python TimeDelta Атрибуты

У класса Python TimeDelta имеет три атрибута.

print(timedelta.max)
print(timedelta.min)
print(timedelta.resolution)

Выход:

999999999 days, 23:59:59.999999
-999999999 days, 0:00:00
0:00:00.000001

Python TimeDelta Общие секунды

Способ Python TimeDelta Object_seconds () Возвращает общее количество секунд.

print('Seconds in an year:', timedelta(days=365).total_seconds())

Выход: Секунд в год: 31536000,0

Python TimeDelta Операции

Давайте посмотрим на еще несколько операций между объектами TimeDelta.

ct = current_datetime + timedelta(seconds=60) - timedelta(seconds=60)
print(current_datetime == ct)

ct = current_datetime + timedelta(seconds=10) * 6
print('Current Time:', current_datetime)
print('One Min from Current Time:', ct)

print('Timedelta absolute value:', abs(timedelta(days=-10)))
print('Timedelta String Representation:', str(timedelta(days=1, seconds=30, hours=10, milliseconds=300)))
print('Timedelta Object Representation:', repr(timedelta(days=1, seconds=30, hours=10, milliseconds=300)))

Выход:

True
Current Time: 2018-09-18 12:47:28.331197
One Min from Current Time: 2018-09-18 12:48:28.331197
Timedelta absolute value: 10 days, 0:00:00
Timedelta String Representation: 1 day, 10:00:30.300000
Timedelta Object Representation: datetime.timedelta(days=1, seconds=36030, microseconds=300000)

Резюме

Объект Python TimeDelta очень полезен для манипуляций DateTime. Поддержка основных арифметических операторов делает его очень простым в использовании.

Ссылка: Официальная документация