Python---time模块使用详解
time.sleep() --- 使程序暂停数秒。
调用:time.sleep(seconds), 传入秒数, 程序运行到这个函数时暂停一段时间。
time模块
time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
时间格式转换图:
timestamp和struct_time之间的相互转换:
time.localtime()获取当地时间即struct_time。
import time
print(time.localtime())
*************************************************************
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=22, tm_hour=14, tm_min=21, tm_sec=41, tm_wday=3, tm_yday=234, tm_isdst=0)
time.gmtime(sec):函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)。
import time
s = time.gmtime(time.time())
print(s)
************************************************************************
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=22, tm_hour=8, tm_min=44, tm_sec=26, tm_wday=3, tm_yday=234, tm_isdst=0)
time.mktime(struct_time):返回时间戳
import time
s = time.mktime(time.localtime())
print(s)
时间元祖和格式化时间之间的转换
time.strftime():时间转换字符串
time.strftime(format,dt)
dt为具体时间,datetime和date格式均可,甚至可以为时间数组struct_time
dt.strftime(format)
format可以取"%Y-%m-%d %H:%M:%S"的任意子串,来决定显示年月日时分秒,dt默认本地时间。
import time
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
time.sleep(2)
print(time.strftime('%Y-%m-%d %H:%M:%S'))
******************************************************************
2019-08-22 14:28:24
2019-08-22 14:28:26
那怎么把格式化时间转换成struct_time时间呢?
time.strptime():根据指定的格式把一个格式化时间转换为时间元组。
time.strptime(string[, format])
string -- 这是其中将根据给定的格式解析字符串格式的时间。
format -- 这是将用于解析该给定的字符串的指令。
格式参数使用相同的指令使用strftime();它默认为“%a %b %d %H:%M:%S %Y”相匹配的ctime()所返回的格式。
import time
s = time.strptime(time.strftime('%M%m%d%H%M%S',time.localtime()),'%Y%m%d%H%M%S')
print(s)
*********************************************************************
time.struct_time(tm_year=1108, tm_mon=2, tm_mday=21, tm_hour=7, tm_min=11, tm_sec=5, tm_wday=4, tm_yday=52, tm_isdst=-1)
转换成可读形式的字符串时间:
time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
time.asctime([t]))
t -- 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值。
返回值,返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
import time
s = time.asctime(time.localtime())
print(s)
*************************************************************************
Thu Aug 22 17:21:26 2019
time.ctime():函数接受时间戳并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
import time
s = time.ctime(time.time())
print(s)
***************************************************************************
Thu Aug 22 17:23:34 2019