time模块的用法
time模块
- 计算机的起始时间:
- 英国伦敦时间: 1970.1.1.0:0:0
- 北京时间: 1970.1.1.8:0:0
- 时间戳时间:
- time.time()获取当前时间的时间戳
- 时间戳是一个float格式的,例如:1581652597.4924521
- 格式化时间(str format time):
- time.strftime('%Y-%m-%d %H:%m:%s')
- 输出的结果是:2020-02-14 11:02:1581652723
- A:表示的是星期几
- str数据类型
- 注意:Y、H、M、S必须大写,m、d是小写,如果Y改成y,那么年份只显示后半部分,例如:2021显示为21
- 结构化时间:
- time_obj = time.localtime()获取当前的结构化时间
- 输出格式:time.struct_time(tm_year=2020, tm_mon=2, tm_mday=14, tm_hour=11, tm_min=50, tm_sec=15, tm_wday=4, tm_yday=45, tm_isdst=0)
- time对象类型
结构化时间是时间戳时间向格式化时间转换的中间类型的时间,并且可以通过time_obj.属性获取每一个属性对应的值。
时间戳时间是给机器看的,格式化时间是给人看的,结构化时间是时间戳时间和格式化时间之间转换的中间状态
graph LR
A[时间戳时间]--gmtime:格林威治时间-->B[结构化时间]
A[时间戳时间]--localtime:北京时间-->B[结构化时间]
B[结构化时间]--strftime-->C[格式化时间]
C[格式化时间]--strptime-->B[结构化时间]
B[结构化时间]--mktime-->A[时间戳时间]
时间格式的转换:
- strptime('需要被转换的时间', '转换的格式')
- strftime('转换格式', 转换对象)
'''时间转换'''
print(time.time())
time_obj = time.localtime(1581655609)
str_time = time.strftime('%H-%m-%d %H:%M:%S', time_obj)
# 从结构化时间戳转换为格式化时间需要两个参数:格式化要求和结构化时间对象
print(str_time)
time_obj = time.strptime('2020-02-14', '%Y-%m-%d')
print(time_obj)
time = time.mktime(time_obj)
print(time)