记录python处理时间的模块:time模块、datetime模块和calendar模块。
◆ 时间的表达方式:
1.时间戳:通常是从1970年1月1日00:00:00开始按秒计算的偏移量,如:1488520142.802
2.格式化的时间字符串:按指定的格式化字符来输出字符串形式的时间,如指定格式化字符为:'%Y-%m-%d %H:%M:%S',得到的时间字符串为:2017-03-03 13:51:34。格式化字符见图1.
3.以元组的形式表示,共9个元素。具体的元素见图2.
图1
图2
注:通用协调时UTC(Universal Time Coordinated)与格林尼治平均时GMT(Greenwich Mean Time)一样,都与英国伦敦的本地时间相同,是世界标准时间,中国为UTC+8
◆ time模块
time()
返回当前时间戳,浮点数形式,不接受参数。
>>> time.time()
1540191060.4276221
gmtime()
将时间戳转换为UTC时间,元组形式,接受一个浮点型时间戳参数,默认值为当前时间戳。
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=6, tm_min=51, tm_sec=39, tm_wday=0, tm_yday=295, tm_isdst=0)
>>> time.gmtime(1440191060)
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=21, tm_hour=21, tm_min=4, tm_sec=20, tm_wday=4, tm_yday=233, tm_isdst=0)
localtime()
将时间戳转换为本地时间,元组形式,接受一个浮点型时间戳参数,默认值为当前时间戳。
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=14, tm_min=52, tm_sec=28, tm_wday=0, tm_yday=295, tm_isdst=0)
>>> time.localtime(1440191060)
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=22, tm_hour=5, tm_min=4, tm_sec=20, tm_wday=5, tm_yday=234, tm_isdst=0)
ctime()
将时间戳转换为指定的字符串形式,接受一个浮点型时间戳参数,默认值为当前时间戳。返回的字符串格式:%a %b %d %H:%M:%S %Y
>>> time.ctime()
'Mon Oct 22 14:56:28 2018'
>>> time.ctime(1440191060)
'Sat Aug 22 05:04:20 2015'
asctime()
将时间元组格式转换为指定字符串形式,接受一个元组参数,默认值为localtime()返回值。返回的字符串格式:%a %b %d %H:%M:%S %Y
>>> time.asctime()
'Mon Oct 22 14:58:26 2018'
>>> t = (2009,2,17,17,3,38,1,48,0)
>>> time.asctime(t)
'Tue Feb 17 17:03:38 2009'
mktime()
将本地时间元组转换为时间戳,接受一个元组参数,必选。
>>> t = (2009,2,17,17,3,38,1,48,0)
>>> time.mktime(t)
1234861418.0
strftime()
将时间元组以指定的格式转换为字符串形式,接受格式化字符串、时间元组,时间元组参数可选,默认为localtime()。
>>> t = (2009,2,17,17,3,38,1,48,0)
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2009-02-17 17:03:38'
strptime()
将指定格式的时间字符串解析为时间元组,接受格式化字符串、字符串形式的时间,两个参数均为必选。
>>> time.strptime("2009-02-17 17:03:38","%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2009, tm_mon=2, tm_mday=17, tm_hour=17, tm_min=3, tm_sec=38, tm_wday=1, tm_yday=48, tm_isdst=-1)
sleep()
延迟指定时间,接受整型、浮点型,单位为秒。
>>> time.sleep(3)
clock()
在Unix系统上,返回进程时间,用秒表示的时间戳;在Windows系统上,第一次调用返回的是进程运行的实际时间,第二次之后的调用,是自第一次调用以后到现在的运行时间。
◆ 转换关系:
![在这里插入图片描述](https://img-blog.csdn.net/2018102214461613?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NreTZldmVu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)