Автор оригинала: 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. Поддержка основных арифметических операторов делает его очень простым в использовании.
Ссылка: Официальная документация