您的位置:

利用Python time.mktime实现时间戳转换功能

一、time.mktime()函数简介

time.mktime()函数是Python中的一个标准库函数,它可以将时间元组(struct_time)转换为时间戳。在Python中,时间戳是指从1970年1月1日午夜(注意是UTC,即协调世界时)开始经过的秒数。

import time
# 时间元组
time_tuple = (2021, 7, 1, 0, 0, 0, 0, 0, 0)
# 将时间元组转换成时间戳
timestamp = time.mktime(time_tuple)
print(timestamp)

运行上面的代码,输出结果为1625097600.0。这个值代表了2021年7月1日午夜的时间戳。

二、时间戳转换为时间元组

除了将时间元组转换为时间戳外,我们还可以将时间戳转换为时间元组。使用time.localtime()函数可以将时间戳转换为当地时间的时间元组。

import time
# 时间戳
timestamp = 1625097600.0
# 将时间戳转换成时间元组
time_tuple = time.localtime(timestamp)
print(time_tuple)

运行上面的代码,输出结果为time.struct_time(tm_year=2021, tm_mon=7, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=182, tm_isdst=0)。

三、将时间戳转换为其他时间格式

除了将时间戳转换为时间元组以外,我们还可以将时间戳转换为其他时间格式,如字符串。使用time.strftime()函数可以将时间戳转换为指定格式的字符串。

import time
# 时间戳
timestamp = 1625097600.0
# 将时间戳转换成时间元组
time_tuple = time.localtime(timestamp)
# 将时间元组转换为指定格式的字符串
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print(time_str)

运行上面的代码,输出结果为2021-07-01 00:00:00。

四、应用实例:将字符串转换为时间戳

有时候我们会从文本文件、数据库中读取时间字符串,需要将其转换为时间戳进行处理。使用time.strptime()函数可以将字符串转换为时间元组,再使用time.mktime()函数将时间元组转换为时间戳。

import time
# 时间字符串
time_str = "20210701"
# 将时间字符串转换成时间元组
time_tuple = time.strptime(time_str, "%Y%m%d")
# 将时间元组转换为时间戳
timestamp = time.mktime(time_tuple)
print(timestamp)

运行上面的代码,输出结果为1625097600.0,即2021年7月1日午夜的时间戳。

五、结语

本文介绍了利用Python time模块中的mktime()、localtime()、strftime()、strptime()函数进行时间戳转换的方法,希望能够对读者有所帮助。