Работа с датой и временем

Средний уровень Python для финансов

Kennedy Behrman

Data Engineer, Author, Founder

Атрибуты datetime

now.year
now.month
now.day
2019
11
13
now.hour
now.minute
now.second
22
34
56
Средний уровень Python для финансов

Сравнение объектов datetime

равно ==

меньше <

больше >

Средний уровень Python для финансов

Сравнение объектов datetime

from datetime import datetime
asian_crisis = datetime(1997, 7, 2)
world_mini_crash = datetime(1997, 10, 27)
asian_crisis > world_mini_crash
False
asian_crisis < world_mini_crash
True
Средний уровень Python для финансов

Сравнение объектов datetime

asian_crisis = datetime(1997, 7, 2)
world_mini_crash = datetime(1997, 10, 27)
text = "10/27/1997"
format_str =  "%m/%d/%Y"
sell_date = datetime.strptime(text, format_str)
sell_date == world_mini_crash
True
Средний уровень Python для финансов

Разница между объектами datetime

  • Сравнение с помощью <, > или ==.
  • Вычитание возвращает объект timedelta.
  • Атрибуты timedelta: weeks, days, minutes, seconds, microseconds
Средний уровень Python для финансов

Разница между объектами datetime

delta = world_mini_crash - asian_crisis
type(delta)
datetime.timedelta
delta.days
117
Средний уровень Python для финансов

Создание относительных дат

dt
datetime.datetime(2019, 1, 14, 0, 0)
datetime(dt.year, dt.month, dt.day - 7)
datetime.datetime(2019, 1, 7, 0, 0)
datetime(dt.year, dt.month, dt.day - 15)
ValueError                                Traceback (most recent call last)
<ipython-input-28-804001f45cdb> in <module>()
-> 1 datetime(dt.year, dt.month, dt.day - 15)
ValueError: day is out of range for month
Средний уровень Python для финансов

Создание относительных дат

delta = world_mini_crash - asian_crisis
type(delta)
datetime.timedelta
Средний уровень Python для финансов

Создание относительных дат

from datetime import timedelta
offset = timedelta(weeks = 1)
offset
datetime.timedelta(7)
dt - offset
datetime.datetime(2019, 1, 7, 0, 0)
Средний уровень Python для финансов

Создание относительных дат

offset = timedelta(days=16)
dt - offset
datetime.datetime(2018, 12, 29, 0, 0)
cur_week = last_week + timedelta(weeks=1)
# Do some work with date
# set last week variable to cur week and repeat
last_week = cur_week
source_dt = event_dt - timedelta(weeks=4)
# Use source datetime to look up market factors
Средний уровень Python для финансов

Давайте потренируемся!

Средний уровень Python для финансов

Preparing Video For Download...