Python 3 – time mktime() 方法
在Python中,时间是一个经常被使用的数据类型,因为我们需要在程序运行期间经常处理日期、时间、时间间隔等此类数据。time模块是Python自带的处理日期和时间数据的类库,其中有一个非常常用的函数就是mktime()函数,它主要用于将struct_time类型的时间转换为Unix时间戳(即从1970年1月1日开始到该时间的秒数)。
mktime() 的语法
mktime()函数的语法如下所示:
import time
time.mktime( 时间元组 )
在这里,时间元组指的是struct_time类型的时间。
mktime() 的返回值
mktime()函数的返回值是一个浮点数。它代表了时间元组所指的时间距离1970年1月1日0时0分0秒之间的秒数。如果输入的时间元组不合法,则会返回-1.
下面让我们来看一个实例:
import time
# 获取当前时间
localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)
#将时间元组转换为时间戳
mktime_local = time.mktime(localtime)
print ("本地时间转换为秒后的时间戳为 :", mktime_local)
输出结果:
本地时间为 : time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=17, tm_min=43, tm_sec=49, tm_wday=0, tm_yday=81, tm_isdst=0)
本地时间转换为秒后的时间戳为 : 1616430229.0
在这个例子中,我们使用time模块获得了当前时间的struct_time型数据,并使用mktime()函数将它转换为Unix时间戳,最后输出了时间戳。
Unix时间戳与struct_time之间的转换
除了将struct_time类型数据转换为Unix时间戳,我们还可以将时间戳转换为struct_time类型数据。
import time
#获取当前时间的时间戳
mk_timestamp = time.time()
print("当前时间戳为:",mk_timestamp)
# 将时间戳转换为时间元组
localtime = time.localtime(mk_timestamp)
print ("本地时间为 :", localtime)
输出结果:
当前时间戳为: 1616430229.415276
本地时间为 : time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=17, tm_min=43, tm_sec=49, tm_wday=0, tm_yday=81, tm_isdst=0)
在这个例子中,我们使用time模块获得了当前时间的Unix时间戳,并使用localtime()函数将它转换为struct_time型数据,最后输出了该数据。
结论
mktime()函数可以将Python中的struct_time型数据转换为Unix时间戳。在Python程序中,我们可以通过这个函数方便地进行时间类型的转换操作。