-
Notifications
You must be signed in to change notification settings - Fork 54
Datetime
datetime是python中用来管理和表示时间的模块,可用的类型有:
class datetime.date: 表示日期, 属性有: year, month 和 day。
class datetime.time: 表示一天内的时间, 属性有: hour, minute, second, microsecond 和 tzinfo。
class datetime.datetime: date和time合并, 属性有: year, month, day, hour, minute, second, microsecond 和 tzinfo。
class datetime.timedelta:(date, time, datetime)一段时间
class datetime.tzinfo: 用于表示时区的抽象类
class datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
需要输入的参数有year, month和day, 其他为可选项。除tzinfo以外其他类型均为int或long
打印特定时间
import warnings
warnings.filterwarnings('ignore')
from datetime import datetime
print(datetime(2017, 1, 2, 3, 4, 5, 6))
2017-01-02 03:04:05.000006
返回当前时间
print(datetime.now())
2018-09-12 17:38:41.024984
返回当前UTC时间
print(datetime.utcnow())
2018-09-12 09:38:41.031977
从1970年1月1日0时开始所经历的秒数的当地时间
print(datetime.fromtimestamp(1000000000))
2001-09-09 09:46:40
# 通过给定的format将date_string转换成datetime
print(type(datetime.strptime("2017-01-01 01:02:03.000007", "%Y-%m-%d %H:%M:%S.%f")))
<class 'datetime.datetime'>
# 通过给定的format将datetime类型转换成string
print(datetime.now().strftime(format="%Y%m%d %H:%M:%S.%f"))
20180912 17:38:41.054953
format的格式详见: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
import pandas as pd
from datetime import timedelta
stock = pd.read_excel('sz50.xlsx',sheetname='600036.XSHG', index_col='datetime')
stock.index = list(map(lambda x: x-timedelta(hours=15), stock.index))
print(stock.tail())
close high low open volume
2017-11-14 111.81 112.81 110.57 110.93 42886800
2017-11-15 111.25 112.73 110.21 111.65 34028800
2017-11-16 112.13 112.13 109.73 110.77 33138100
2017-11-17 117.24 117.67 112.93 112.93 74014200
2017-11-20 121.82 122.50 116.20 116.92 64388900
datetime官方文档:https://docs.python.org/2/library/datetime.html
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
所有参数都不是必须的, 类型为int, long或float, 正负都可以。
delta=timedelta(days=1, seconds=-2,microseconds=-3, minutes=-4, hours=-5, weeks=6)
print(delta.days, delta.seconds, delta.microseconds)
42 68157 999997
now = datetime.now()
td = timedelta(1)
print (now)
print (td)
print (now + td * 2)
2018-09-12 17:39:11.506369
1 day, 0:00:00
2018-09-14 17:39:11.506369
-
python基础
-
python进阶
-
数据格式处理
-
数据计算与展示
-
因子横截面排序分析
-
信号时间序列分析
-
CTA策略类型
-
附录:因子算法