一、time模块中有三种时间表示方式:
- 时间戳
- 结构化时间对象
- 格式化时间字符串
二、三种格式编写方式
import time
# 时间戳 结构化时间对象 格式化时间字符串
# 时间戳 1970.01.01到指定时间的间隔 单位是秒
# 打印当前时间的时间戳
print(time.time())
# 打印当前时间的前一个小时的时间戳
print(time.time() - 3600)
运行结果:
import time
# 结构化时间对象
st = time.localtime()
print(type(st))
print(st) # __str__
# st 本质上是一个元组 总共是9个属性
print('今天是{}-{:02d}-{}').format(st[0],st[1],st[2])) # 以0为左填充占两位st[1]以数字的形式写入。
print('今天是星期{}').format(st.tm_wday +1)
# 对象的属性是只读的
# st.tm_yday = 196
运行结果:
import time
# 格式化的时间字符串
print(time.ctime())
# strftime(时间格式) '%Y-%m-%d %H:%M:%S'
print(time.strftime('%Y-%m-%d %H:%M:%S'))
print(time.strftime('%Y年%m月%d日 %H时%M分%S秒'))
print(time.strftime('%Y-%m-%d %H:%M:%S %a'))
print(time.strftime('%Y-%m-%d %H:%M:%S %A'))
print(time.strftime('%Y-%m-%d %H:%M:%S %b'))
print(time.strftime('%Y-%m-%d %H:%M:%S %B'))
print(time.strftime('%Y-%m-%d %I:%M:%S %p'))
print(time.strftime('%Y-%m-%d %H:%M:%S %w')) # 当前日期在当前星期是第几天
print(time.strftime('%Y-%m-%d %H:%M:%S %W')) # 当前周别在当前年份第几周
运行结果:
import time
# sleep 让当前程序沉睡
t1 = time.time()
print('sleep')
time.sleep(5)
t2 = time.time()
print('begin')
print("执行了 {:.3f} 秒".format(t2-t1))
运行结果:
三、三种格式之间相互转换
1.时间戳 到 结构化时间对象
import time
# 时间戳转化为时间结构化对象
#UTC
print(time.gmtime())
print(time.gmtime(time.time() - 3600))
#local
print(time.localtime())
print(time.localtime(time.time() - 3600))
运行结果:
2.结构化时间对象 到 时间戳
import time
# 结构化对象到时间戳
# mktime(st)
print(time.time())
print(time,mktime(time.localtime()))
运行结果:
3.结构化时间对象 到 格式化时间字符串
import time
# 结构化时间对象 到 格式化时间字符串
# strftime(format, st)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
print(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime()))
运行结果:
4.格式化时间字符串 到 结构化时间对象
import time
# 格式化字符串 到 结构化时间对象
# strptime(str, format)
strtime = '2021-04-12 18:09:50'
print(time.strptime(strtime, '%Y-%m-%d %H:%M:%S'))
运行结果: