时间截
时间截(timestamp),能表示一份数据在某个特定的时间之前已经存在的,完整的,可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。时间截是值格里尼治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00秒)到现在的总秒数。
时间截在电子商务,金融活动上有着广泛的应用,可以用来支撑公开密钥基础设施的“不可否认”服务,它是一个经加密形成的凭证文档,包含三部分:需加时间截的文件地摘要,解码时间截(DTS)收到文件的日期和时间,DTS的数字签名。
一般的产生过程:用户将需要加时间截的文件用Hash编码加密形成摘要,接着将该摘要发送到DTS,DTS在加入了文件摘要的日期和时间信息后再对该文件加密(数字签名)。最后送回给用户。
time
time函数
该函数用于返回当前时间的时间截,返回的数据类型是浮点数。
import time
now=time.time()
print("the time is:%f"%now)
the time is:1723887142.175678
localtime函数
localtime是将时间截格式化为本地时间,返回struct_time对象。localtime函数有一个参数用于接收时间截,如果调用函数时不提供时间截,localtime会默认使用当前的时间截。
import time
print('当前时间',time.localtime())
print("0时间截所对应的时间",time.localtime(0))
当前时间 time.struct_time(tm_year=2024, tm_mon=8, tm_mday=17, tm_hour=21, tm_min=18, tm_sec=30, tm_wday=5, tm_yday=230, tm_isdst=0)
0时间截所对应的时间 time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
从这个例子的编译结果来看,localtime返回的就是struct_time类型。
mktime函数
mktime接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。mktime的参数可以是结构化的时间,也可以是完整的九位元组元素。
import time
t=(2024,9,12,13,2,1,1,1,0)
sec=time.mktime(t)
print("time.mktime(t):%f"% sec)
print("time.mktime(time.localtime(secs)):%f"%time.mktime(time.localtime(sec)))
运行结果如下
time.mktime(t):1726117321.000000
time.mktime(time.localtime(secs)):1726117321.000000
从这个样例,我们可以看出mktime可以使用时间元组作为参数,也可以使用time_struct示例作为参数(localtime的返回值为time_struct对象)
gmtime函数
gmtime函数可以将一个时间截转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。gmtime函数的默认值为time.time(),函数返回time.struct_time类型的对象(struct_time是在time模块中定义的表示时间的对象)
import time
import time
print("time.gmtime():",time.gmtime())
print("time.gmtime(0):",time.gmtime(0))
运行结果
time.gmtime(): time.struct_time(tm_year=2024, tm_mon=9, tm_mday=12, tm_hour=5, tm_min=13, tm_sec=10, tm_wday=3, tm_yday=256, tm_isdst=0)
time.gmtime(0): time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
asctime函数
asctime函数接受时间元组并返回一个可读的形式的24个字符的字符串。asctime函数接收的参数可以是9个元素的元组,也可以是通过函数gmtime()或localtime()返回的时间值(time_struct类型)。
import time
t=(2024,9,12,13,17,1,1,1,0)
print("time.asctime(t)",time.asctime(t))
print("time.asctime(time.localtime())",time.asctime(time.localtime()))
运行结果
time.asctime(t) Tue Sep 12 13:17:01 2024
time.asctime(time.localtime()) Thu Sep 12 13:19:08 2024
ctime函数
ctime函数能把一个时间截(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给出或者值为none时,将会默认time.time()为参数,它的作用相当于执行asctime(localtime(sec))
import time
print("time.ctime(): % s",time.ctime())
print("time.ctime(0):% s",time.ctime(0))
运行结果
time.ctime(): % s Thu Sep 12 13:34:08 2024
time.ctime(0):% s Thu Jan 1 08:00:00 1970
sleep函数
sleep函数用于推迟调用线程的运行,可通过参数sec指秒数,表示进程挂起的时间。
import time
print("Start:%s"% time.ctime())
time.sleep(9)
print("End:%s"%time.ctime())
运行结果
Start:Thu Sep 12 13:37:59 2024
End:Thu Sep 12 13:38:08 2024
strftime函数
strftime函数用于接收时间元组,并返回可读字符串表示的当地时间,格式由参数format决定
import time
t=(2024,9,12,13,40,1,1,1,0)
t=time.mktime(t)
print(time.strftime("%b %d %Y %H:%M:%S",time.gmtime(t)))
运行结果
Sep 12 2024 05:40:01
strptime函数
这个函数能够根据指定的格式把一个时间字符串解析为时间元组(time_struct对象)
import time
struct_time=time.strptime("Sep 12 2024 05:40:01","%b %d %Y %H:%M:%S")
print("返回元组:",struct_time)
运行结果
返回元组: time.struct_time(tm_year=2024, tm_mon=9, tm_mday=12, tm_hour=5, tm_min=40, tm_sec=1, tm_wday=3, tm_yday=256, tm_isdst=-1)
sprtime函数和timestamp正好是能够互相转换的函数。
总结
本篇文章讲述了python时间与日期当中的time模块的相关函数,后面我们会为大家讲讲python时间当中的其它模块,譬如像,datetime模块,calendar模块,有兴趣的小伙伴们可以持续关注一下这个专栏,谢谢大家的阅读。