10.3 Datetime 模块和Time 模块

10.3 Datetime 模块和Time 模块


在Python 中,通常有三种方式用来表示时间,分别是时间戳、格式化的时间字符串、元组( struct_time )方式。

1. 时间戳

一般来讲,时间戳表示的是从1970 年1 月1 日00:00:00 开始按秒计算的偏移量。可以运行"type(time.time())" ,返回的是float 类型。返回时间戳方式的函数主要有time() , clock()等。

2. 格式化的时间字符串

格式化的时间字符串表示时间,相对比较简单,如"%y一%m一%d%H:%M:%S" ,表示几年一几月一几曰:几时:几分:几秒。

3. 元组(struct time) 方式

struct_time 元组共有9 个元素返回struct_time 的函数主要有gmtime() , localtime() , strptime() 。下面列出这种方式元组中的几个元素:

struct_ time(tm_year=2016. tm_mon=2. tm_mday=2. tm_hour=11 ,tm_min=16 , tm_sec=钮, tm_wday=1, tm_yday=33 , tm_isdst=())意思是年,月,日,肘,分, 秒,星期几( 0-6 ),年的第几天,是否夏令时(默认为-1 )。

10.3.1 利用Datetime 模块获得当前的日期和时间

创建一个Python3 文件,然后输入代码如下:

首先导入Datetime 模块,然后调用Datetime 模块中的datetime.now()函数,这样就可以获利当前时间, now()函数的常用属性及意义如下:

year:表示当前时间的年份。

month: 表示当前时间的月份。

day: 表示当前时间的曰期。

hour: 表示当前时间的小时。

mmute: 表示当前时间的分钟。

second : 表示当前时间的秒数。

单击工具栏中运行按钮,运行结果如图10.34 所示。

10.3.2 利用Time 模块获得当前的日期刊时间

创建一个Python3 文件,然后输入代码如下:

首先导入time 模块,然后调用strftime()方法输出当前时间。

time.strftime(format[ , t]) :把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtirne()返回)转化为格式化的时间字符串。如果t 未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError 的错误将会被抛出。

10.3.3 获得当前时间并转换为指定日期格式

创建一个Python3 文件,然后输入代码如下:

这里主要是利用格式化的时间字符串来输出当前时间。

10.3.4 获得三天前的时间的方法

创建一个Python3 文件,然后输入代码如下:

首先导入time 模块和datetime 模块,然后获得时间数组格式的日期,再利用time.mktime 函数把时间数组转换为时间戳,再转换为其他字符串格式输出。

10.3.5 获得三天前的曰期的方法

创建一个Python3 文件,然后输入代码如下:

10.3.6 获得历史交易日

历史交易曰往往因为注定节假日的不固定而导致交易曰不固定,给我们的回测带来了很大的不便。下面讲解一个简单方法可以轻松获得某只股票历史的交易曰。

创建一个Python3 文件,然后输入代码如下:

在这里调用get_price()函数获得股票数据,需要注意结束时间是调用time.localtime()函数,获得当前日期。再利用timestrftime()函数,恪式化输出当前时间。