简介
在数据处理当中,经常会碰到处理时间的问题。比如:在序列预测的过程中,需要通过学习一段时间的数据,去预测未来一段时间的结果。这时候就要用到时间(time、datetime、calendar)模块,今天介绍时间模块中的time
模块。
一、time模块
在Python中有三种表示时间到方式:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
其中格式化时间中每个字符的含义如下
符号 | 描述 |
---|---|
%a | 简化星期名称 |
%A | 完整星期名称 |
%b | 简化月份名称 |
%B | 完整月份名称 |
%c | 相应的日期和时间表示 |
%d | 一个月中的第几天(01 – 31) |
%H | 一天中的第几个小时(24小时制,00 – 23) |
%I | 第几个小时(12小时制,01 – 12) |
%j | 一年中的第几天(001 – 366) |
%m | 月份(01 – 12) |
%M | 分钟数(00 – 59) |
%p | 本地am或者pm的相应符 |
%S | 秒(01 – 61) |
%U | 一年中的星期数。(00 – 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周 |
%w | 一个星期中的第几天(0 – 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一为一个星期的开始 |
%x | 相应日期 |
%X | 相应时间 |
%y | 去掉世纪的年份(00 – 99) |
%Y | 完整的年份 |
%Z | 时区的名字(如果不存在为空字符) |
%% | ‘%’字符 |
在元组中会有9项参数,如下表所示:
关键字 | 描述 |
---|---|
tm_year | 年 |
tm_mon | 月(1-12) |
tm_mday | 日(1-31) |
tm_hour | 时(0-23) |
tm_min | 分(0-59) |
tm_sec | 秒(0-61),闰年多两秒 |
tm_wday | 周一-周日(0-6) |
tm_yday | 一年中第几天(1-366) |
tm_isdst | 是否夏令时(1:是;0:不是;-1:未知;默认 -1) |
这里介绍一些常用命令:
1、time.time()
描述:该函数返回当前时间到时间戳,也就是距离1970年1月1日00:00:00到差值。
代码如下:
time.time()
#1563030732.796513
2、time.localtime()
描述:该函数能将一个时间戳转换成元祖的形式,如果没有指定时间戳,默认使用当前时间的时间戳。需要注意的是返回的时间是当地时间。
代码如下:
time.localtime(1563030732.796513)
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=12, tm_sec=12, tm_wday=5, tm_yday=194, tm_isdst=0)
time.localtime()
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=16, tm_sec=41, tm_wday=5, tm_yday=194, tm_isdst=0)
3、time.gmtime()
描述:该函数和localtime()的功能一样,只是它返回的时间是格林威治天文时间(UTC),也就是世界标准时间。中国时间为UTF+8
代码如下:
time.gmtime()
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=15, tm_min=19, tm_sec=10, tm_wday=5, tm_yday=194, tm_isdst=0)
4、time.mktime()
描述:该函数将一个元祖转换成时间戳。
代码如下:
time.mktime(time.localtime())
#1563031277.0
5、time.sleep()
描述:该函数能让程序暂停休息,传入几秒,休息几秒
6、time.asctime()
描述:该函数将一个元祖转换成格式化时间。如果没有传入参数,默认传入time.localtime()。
代码如下:
time.asctime()
#'Sat Jul 13 23:24:31 2019'
7、time.ctime()
描述:该函数将一个时间戳转换成格式化时间。如果没有传入参数,默认传入time.time()。
代码如下:
time.ctime()
#'Sat Jul 13 23:27:08 2019'
8、time.strftime()
描述:该函数按照格式化字符把一个元祖转换成格式化时间字符串。如果没有传入参数,默认传入time.localtime()。
代码如下:
time.strftime("%Y-%m-%d %X", time.localtime())
#'2019-07-13 23:29:11'
9、time.strptime()
描述:该函数按照格式化字符把一个格式化时间字符串转换成元祖。
time.strptime('2019-07-13 23:29:11', '%Y-%m-%d %X')
#time.struct_time(tm_year=2019, tm_mon=7, tm_mday=13, tm_hour=23, tm_min=29, tm_sec=11, tm_wday=5, tm_yday=194, tm_isdst=-1)