一、time模块三种时间形式
1.时间戳:从1970年到现在经过的秒数
import time
#作用:常用于时间间隔的计算
print(time.time())
#输出结果
1608295721.7066362
2.格式化的字符串形式
#作用:用于展示时间
print(time.strftime('%Y-%m-%d %H:%M:%S'))
2020-12-18 20:55:18
3.结构化的时间(struct-time)
#作用:用于单独获取时间的某一部分
t = time.localtime()
print(t)
#输出结果
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=18, tm_hour=20, tm_min=57, tm_sec=2, tm_wday=4, tm_yday=353, tm_isdst=0)
二、三种时间形式的转换关系
其中localtime表示当地时间,gmtime表示世界标准时间(本初子午线为准)
1.struct-time转换为时间戳
s_time = time.localtime() # localtime转换为结构化时间
print(s_time)
print(time.mktime(s_time)) # mktime将结构化时间转换为时间戳
# 输出结果
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=18, tm_hour=21, tm_min=19, tm_sec=2, tm_wday=4, tm_yday=353, tm_isdst=0)
1608297542.0
2.时间戳转换为struct-time
print(time.localtime(time.time()))
3.结构化时间转换为格式化的字符串时间
s_time = time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
2020-12-18 21:23:56
4.格式化字符串时间转换为结构化时间
print(time.strptime('1980-02-10 19:20:50','%Y-%m-%d %H:%M:%S'))
#输出结果
time.struct_time(tm_year=1980, tm_mon=2, tm_mday=10, tm_hour=19, tm_min=20, tm_sec=50, tm_wday=6, tm_yday=41, tm_isdst=-1)
三、总结
真正需要掌握的只有一条:字符串格式时间<----互转—>时间戳。
通过结构化时间作为桥梁,实现字符串格式时间和时间戳互转
# 字符串格式
res = '2017-07-01 12:15:20'
#字符串格式————>结构化时间
s_time = time.strptime(res,'%Y-%m-%d %H:%M:%S')
#mktime转时间戳,加上7天时间
timestamp = time.mktime(s_time)+7*86400
#通过localtime将时间戳转为结构化时间,再用strftime转为字符串格式时间
time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timestamp))
print(time)
#输出结果
2017-07-08 12:15:20
学python的小笔记。