python量化基础之时间处理

说明:

  1. 掌握python内置时间模块time、datetime的基本操作即可

  2. 基于python3.7.0

一、time 模块

1.当前时间—时间戳形式

import time
time.time()  # 当前系统时间戳,1970/1/1 00:00:00开始计秒

Out[3]: 1543932089.671177  # 浮点型

2.当前时间—时间元组形式

time.localtime()  # 不带参数返回当前时间元组

Out[5]: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=4, 
			 tm_hour=22, tm_min=8, tm_sec=16, 
			 tm_wday=1, tm_yday=338, tm_isdst=0)

# tm_year :年
# tm_mon:  月
# tm_mday: 日
# tm_hour: 小时
# tm_min:  分钟
# tm_sec:  秒
# tm_wday: 一周的第几天
# tm_yday: 一年的第几天
# tm_isdst:夏令时吧,中国取消了,不用管这一个参数。
isinstance(time.localtime(), tuple)

Out[18]: True  # 知道为啥叫时间元组了吧

time.localtime() 可以接受参数吗?可以!你觉得能接受怎样的参数?当然是时间戳啦

time.localtime(100000000)  # 参数为某个时间戳

Out[19]: time.struct_time(tm_year=1973, tm_mon=3, tm_mday=3, 
			  tm_hour=17, tm_min=46, tm_sec=40,
 			  tm_wday=5, tm_yday=62, tm_isdst=0)

3.时间的格式化

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 格式化时间元组,你的顺序和个数可以依据格式化字符来进行调整
							  
Out[20]: '2018-12-04 22:46:16'  # 字符串

必须知道的格式化字符!,也就是刚刚用到的,其他的遇到再查就可以了。

  • %Y 四位数的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月内中的一天(0-31)
  • %H 24小时制小时数(0-23)
  • %M 分钟数(00=59)
  • %S 秒(00-59)

4.收尾

到这里,我们已经可以形成一个可以日常使用的时间处理逻辑了。

时间戳 ---- localtime() ---->> 时间元组 ---- strftime() ---->> 格式化时间

思考下,我们怎么从右边把这一个过程实现一遍呢?

时间戳 <<---- mktime() ---- 时间元组 <<---- strptime() ---- 格式化时间

time.strptime('2018-12-04 22:46:16', '%Y-%m-%d %H:%M:%S')

Out[26]: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=4, 
			  tm_hour=22, tm_min=46, tm_sec=16, 
			  tm_wday=1, tm_yday=338, tm_isdst=-1)
			  
# 这是格式化字符一定要一一对应!!!如果没有后面的22:46:16,那么%H:%M:%S也没有

time.strptime('2018-12-04', '%Y-%m-%d')

Out[27]: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=4, 
			  tm_hour=0, tm_min=0, tm_sec=0, 
			  tm_wday=1, tm_yday=338, tm_isdst=-1)
a = time.strptime('2018-12-04', '%Y-%m-%d')
time.mktime(a)

Out[28]: 1543852800.0

二、datetime 模块

掌握时间的加减即可,因为我们已经拥有了利用time模块进行基本时间转换的完整逻辑

1.加减

import datetime
a = datetime.datetime.now()
print(a)

Out[8]: 2018-12-05 15:23:28.996803


b = a - datetime.timedelta(days=1)  # 接受**kwargs:days,hours,seconds
print(b)

2018-12-04 15:25:40.543942

你可能感兴趣的:(python量化)