struct_time
时间元组timestamp
时间戳类似于new一个时间实例
适合获取年月日时分秒,以及其他操作等等,
通过time.localtime()
可以生成一个struct_time
,
顾名思义,就是一个时间戳,单位是秒
适合进行时间的加减,time
模块不能直接对时间进行加减,比如说加1个小时,1天,只能通过时间戳进行加减
适合打印输出
print(
(
"字符串转时间: time.strptime(\"2019-10-08 20:30:00\", \"%Y-%m-%d %H:%M:%S\")"
" --> {}"
).format(
time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S")
)
)
返回结果:
字符串转时间:
time.strptime("2019-10-08 20:30:00", "%Y-%m-%d %H:%M:%S") -->
time.struct_time(
tm_year=2019,
tm_mon=10,
tm_mday=8,
tm_hour=20,
tm_min=30,
tm_sec=0,
tm_wday=1,
tm_yday=281,
tm_isdst=-1
)
t = time.localtime()
print("时间转字符串: time.strftime(\"%Y-%m-%d %H:%M:%S\", t) --> {}".format(
time.strftime("%Y-%m-%d %H:%M:%S", t)
))
返回结果:
时间转字符串: time.strftime("%Y-%m-%d %H:%M:%S", t) --> 2019-10-08 14:22:31
t = time.localtime()
print("时间转时间戳: time.mktime(t) --> {}".format(time.mktime(t)))
返回结果:
时间转时间戳: time.mktime(t) --> 1570515751.0
sec = time.time()
print("时间戳转时间: time.localtime(sec) --> {}".format(time.localtime(sec)))
返回结果:
时间戳转时间: time.localtime(sec) --> time.struct_time(
tm_year=2019,
tm_mon=10,
tm_mday=8,
tm_hour=14,
tm_min=22,
tm_sec=31,
tm_wday=1,
tm_yday=281,
tm_isdst=0
)
字符串与时间戳之间的转换需要先转成时间类再向目标类型转换
转换过程: 字符串 --> 时间 --> 时间戳
f = "2019-10-03 10:45:00"
df = "%Y-%m-%d %H:%M:%S"
t = time.strptime(f, df)
sec = time.mktime(t)
print("字符串转时间戳: sec = {}".format(sec))
返回结果:
字符串转时间戳: sec = 1570070700.0
时间戳 --> 时间 --> 字符串
sec = 1570070700
t = time.localtime(sec)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", t)
print("时间戳转字符串: time_str= {}".format(time_str))
返回结果:
时间戳转字符串: time_str= 2019-10-03 10:45:00
time.localtime()
time.time()
这种格式的时间字符串我们中国地区用得比较少,可以忽略不计
time.asctime()
time.ctime()
返回结果:
time.asctime() --> Tue Oct 8 14:30:49 2019
time.ctime() --> Tue Oct 8 14:30:49 2019
time模块时间的加减只能通过timestamp加减对应的秒数,然后再转回去
如果给定的是时间字符串的话
只能先把字符串先转为时间, 再转为时间戳,
然后对时间戳进行加减, 加减过后再转回时间,再转回字符串
这样挺麻烦的,推荐使用datetime模块
下面给出一个时间字符串加3个小时,并打印结果:
t = time.strptime("2019-10-03 10:45:00", "%Y-%m-%d %H:%M:%S")
sec = time.mktime(t)
sec += 3 * 60 * 60
t1 = time.localtime(sec)
s1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
print("加3小时后的时间为: {}".format(s1))
返回结果:
原时间为: 2019-10-03 10:45:00
加3小时后的时间为: 2019-10-03 13:45:00