使用time模块,对时间进行不同格式的转换
1.strptime()
作用:将时间字符串转换成结构化时间,struct_time
注意!无论是时间戳变时间字符串,还是时间字符串变时间戳,都需要使用strptime()进行过渡。
时间戳 <=> 结构化时间 <=> 时间字符串
import time
time_str = "2022-12-18 10:54:00"
struct_time = time.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print(struct_time)
结果:
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=18, tm_hour=10, tm_min=54, tm_sec=0, tm_wday=6, tm_yday=352, tm_isdst=-1)
其中分别是年月日,小时,分钟,秒,一周第几天(从零开始),一年第几天(从1开始),以及是否是夏令时(1: 是 DST;0: 不是 DST;-1: 由 mktime() 自己去判断当前系统设置是否是 DST)
2.mktime()
作用:将结构化时间转换为时间戳
timestamp = time.mktime(struct_time)
print(timestamp)
结果
1671332040.0
PS:如果不想要后面的小数,可以使用int进行类型转换,如果想要以毫秒为单位的,则需要乘以1000
3.strftime()
作用:把结构化时间转变为任意格式的时间字符串
time_stru_new = time.strftime("%Y/%m/%d-%H:%M:%S", struct_time)
print(time_stru_new)
结果
2022/12/18-10:54:00
4.举例
4.1时间戳变时间字符串
time_stamp = 1671332040
# 时间戳 => 结构化时间 => 时间字符串
time_str = time.strftime('%Y/%m/%d-%H:%M:%S', time.localtime(time_stamp))
print(time_str)
结果:
2022-12-18 10:54:00
4.2时间字符串变时间戳
time_str= '2022-12-18 10:54:00'
time_stamp = time.mktime(time.strptime(time_str, '%Y/%m/%d-%H:%M:%S'))
print(time_stamp)
结果:
1671332040.0
5.其他函数
time.time()#获取当前时间戳
time.localtime()#将时间戳转换为以元组表示的时间对象(struct_time格式)
#localtime()结果如同strptime()
待续……