Python предоставляет очень мощный модуль для управления датой и временем. Это особенно полезно для финансовых данных, поскольку большинство финансовых данных представляют собой данные временных рядов. Начнем с импорта модуля.

import datetime

Первым делом нужно проверить время прямо сейчас:

print(datetime.datetime.now())

Мы также можем создать объект datetime, передав год, месяц и день. Итак, если бы нам нужно было создать объект на сегодняшний день, мы сделаем следующее:

today = datetime.datetime(2021, 1, 13)
print(today)

Аналогично вы также можете добавить время. Например, мы можем добавить к дате выше 15:15:

event = datetime.datetime(2021, 1, 13, 15, 15)
print(event)

Преобразование строки в объект datetime

Модуль datetime позволяет очень легко преобразовать строку в объект datetime. Ключ в том, чтобы определить формат строки. Это похоже на то, как если бы вы должны указать модулю, где нужно указать год, месяц, день и время в строке. Данные даты / времени в строке заменяются%, за которым следует алфавит, обозначающий, год / месяц / день или время, также в зависимости от формата данных даты / времени в строке. Соответствующая буква конкретному формату даты / времени показана в этой таблице:

Так, например, если текст - «Воскресенье, 14 февраля 2021 г.», мы заменим текст, представляющий дату / время, на%, за которым следует соответствующая буква, но оставим остальной текст как есть. Итак, наш формат будет «% A the% dth,% B,% Y». Давайте попробуем это:

date_string = "Sunday the 14th, February, 2021"
date_format = "%A the %dth, %B, %Y"
valentines_day = datetime.datetime.strptime(date_string, date_format)
print(valentines_day)

Доступ к атрибутам datetime: модуль datetime также позволяет очень удобно получить доступ к определенным атрибутам, таким как год, месяц или день. Для нашего valentines_day мы можем сделать это следующим образом:

print(valentines_day.day)

Это будет работать для года, месяца, секунды, минуты и часа, очень интуитивно. Помните, все это единичные числа, секунды, а не секунды, час, а не часы.

Рано или поздно:

Модуль datetime также упрощает сравнение дат. С точки зрения сравнения дат, значение даты - это количество дней, которые она перенесет с начала, более поздняя дата будет иметь больше дней / времени, поэтому она будет «больше, чем» более ранняя дата. Например, давайте определим день Мартина Лютера Кинга в этом году.

mlk_day = datetime.datetime(2021, 1, 18)

Давайте сравним это с нашим Днем Святого Валентина:

mlk_day < valentines_day

Поскольку день MLK приходится на январь и является более ранней датой по сравнению с днем ​​святого Валентина, который приходится на февраль, мы заявили, что день MLK меньше, чем день святого Валентина. Тот же принцип применяется к более чем (›), не равному (! =) И равному (==) при сравнении дат.

Если вы хотите вычислить разницу даты и времени между двумя объектами datetime, вы можете просто добавить или вычесть их. Например, давайте посчитаем количество дней между днем ​​MLK в этом году и днем ​​святого Валентина, мы можем сделать это, просто вычитая одно из другого.

difference=valentines_day-mlk_day
print(difference)

Если вам нужно только количество дней, вы можете сделать это следующим образом:

print(difference.days)

А что, если вы хотите рассчитать дату на определенное количество дней до или после определенной даты? Поприветствуйте timedelta. Это класс в модуле datetime, который вычислит дату для вас с учетом разницы между двумя датами. Давайте посчитаем дату через 280 дней после Дня святого Валентина (можно догадаться, почему именно 280 дней?).

calculated_date = valentines_day + datetime.timedelta(days=280)
print(calculated_date)

Это было краткое введение в модуль datetime. Если вы хотите узнать больше о настройке дат, особенно праздников и выходных, прочтите эту статью:

Игра с датами и праздниками в Python с помощью Pandas

Источники / ссылки:

  1. Учебник Python Datetime: управление временем, датами и временными интервалами
  2. Промежуточный Python для финансов