Praca z datami i czasem

Python dla finansów – poziom średniozaawansowany

Kennedy Behrman

Data Engineer, Author, Founder

Atrybuty datetime

now.year
now.month
now.day
2019
11
13
now.hour
now.minute
now.second
22
34
56
Python dla finansów – poziom średniozaawansowany

Porównywanie dat

równa się ==

mniejsze niż <

większe niż >

Python dla finansów – poziom średniozaawansowany

Porównywanie dat

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 dla finansów – poziom średniozaawansowany

Porównywanie dat

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 dla finansów – poziom średniozaawansowany

Różnica między datami

  • Porównywanie za pomocą <, > lub ==.
  • Odejmowanie zwraca obiekt timedelta.
  • Atrybuty timedelta: weeks, days, minutes, seconds, microseconds
Python dla finansów – poziom średniozaawansowany

Różnica między datami

delta = world_mini_crash - asian_crisis
type(delta)
datetime.timedelta
delta.days
117
Python dla finansów – poziom średniozaawansowany

Tworzenie dat względnych

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 dla finansów – poziom średniozaawansowany

Tworzenie dat względnych

delta = world_mini_crash - asian_crisis
type(delta)
datetime.timedelta
Python dla finansów – poziom średniozaawansowany

Tworzenie dat względnych

from datetime import timedelta
offset = timedelta(weeks = 1)
offset
datetime.timedelta(7)
dt - offset
datetime.datetime(2019, 1, 7, 0, 0)
Python dla finansów – poziom średniozaawansowany

Tworzenie dat względnych

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 dla finansów – poziom średniozaawansowany

Czas na ćwiczenia!

Python dla finansów – poziom średniozaawansowany

Preparing Video For Download...