原地址:https://finthon.com/python-time/python
在数据处理当中,常常会碰处处理时间的问题。好比:在序列预测的过程当中,须要经过学习一段时间的数据,去预测将来一段时间的结果。这时候就要用到时间(time、datetime、calendar)模块,今天介绍时间模块中的time
模块。git
在Python中有三种表示时间的方式:github
其中格式化时间中每一个字符的含义以下:机器学习
符号 | 描述 |
---|---|
%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项参数,以下表所示:ide
关键字 | 描述 |
---|---|
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) |
time
模块中经常使用的函数能够总结成下图,基本上就是三者如何转换:函数
接下来咱们会一一介绍。学习
该函数返回当前时间的时间戳,也就是距离1970年1月1日00:00:00的差值。spa
代码演示:线程
1
2
3
|
>>>import time
>>>time.time()
1540808367.8872325
|
该函数能将一个时间戳转换成元组的形式,若是没有指定时间戳,默认使用当前时间的时间戳。须要注意的是返回的时间是当地时间。code
代码演示:
1
2
3
4
5
6
|
>>>import time
>>>time.localtime(1540808367.8872325)
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=29, tm_hour=18, tm_min=19, tm_sec=27, tm_wday=0, tm_yday=302, tm_isdst=0)
>>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=29, tm_hour=18, tm_min=26, tm_sec=10, tm_wday=0, tm_yday=302, tm_isdst=0)
|
该函数和localtime()
的功能同样,只是它返回的时间是格林威治天文时间(UTC),也就是世界标准时间。中国时间为UTC+8。
代码演示:
1
2
3
|
>>>import time
>>>time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=29, tm_hour=10, tm_min=31, tm_sec=58, tm_wday=0, tm_yday=302, tm_isdst=0)
|
该函数将一个元组转换成时间戳。
代码演示:
1
2
3
|
>>>import time
>>>time.mktime(time.localtime())
1540809214.0
|
该函数能让程序线程暂停休息,传入几秒,休息几秒。
代码演示:
1
2
3
4
|
import time
print(time.time())
time.sleep(3)
print(time.time())
|
结果为:
1
2
|
1540809376.7814057
1540809379.7822838
|
该函数将一个元组转换成格式化时间。若是没有传入参数,默认传入time.localtime()
。
代码演示:
1
2
3
|
>>>import time
>>>time.asctime()
'Mon Oct 29 18:39:10 2018'
|
该函数将一个时间戳转换成格式化时间。若是没有传入参数,默认传入time.time()
。
代码演示:
1
2
3
|
>>>import time
>>>time.ctime()
'Mon Oct 29 18:41:04 2018'
|
该函数按照格式化字符把一个元组转换成格式化时间字符串。若是没有传入参数,默认传入time.localtime()
。
代码演示:
1
2
3
|
>>>import time
>>>time.strftime("%Y-%m-%d %X", time.localtime())
'2018-10-29 18:46:14'
|
该函数按照格式化字符把一个格式化时间字符串转成元组。
1
2
3
|
>>>import time
>>>time.strptime('2018-10-29 18:46:14', '%Y-%m-%d %X')
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=29, tm_hour=18, tm_min=46, tm_sec=14, tm_wday=0, tm_yday=302, tm_isdst=-1)
|
须要注意的是,当传入的时间中包括周数和天数(%U和%W),该函数才能使用。
本文介绍了time
模块中经常使用的几个函数,主要涉及到三种时间格式之间的转换。time
模块在机器学习中,尤为在序列数据中使用较多。