处理 datetime

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 金融进阶

创建相对 datetime

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 金融进阶

创建相对 datetime

delta = world_mini_crash - asian_crisis
type(delta)
datetime.timedelta
Python 金融进阶

创建相对 datetime

from datetime import timedelta
offset = timedelta(weeks = 1)
offset
datetime.timedelta(7)
dt - offset
datetime.datetime(2019, 1, 7, 0, 0)
Python 金融进阶

创建相对 datetime

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 金融进阶

Passons à la pratique !

Python 金融进阶

Preparing Video For Download...