练习40
# 时间模块
import time
# 三种格式
# 时间戳时间 浮点数 以秒为单位
# 1970.1.1 0:0:0 英国伦敦时间
# 1970.1.1 8:0:0 东8区
# 结构化时间 元组
#
# 格式化时间 srt数据类型的 '2018年9月4日 9时10分20秒'
# print(time.time())
# 1608626595.512983
# struce_time = time.localtime()
# print(struce_time)
#
# fmt1 = time.strftime('%H:%M:%S')
# fmt2 = time.strftime('%Y-%m-%d')
# fmt3 = time.strftime('%y-%m-%d')
# fmt4 = time.strftime('%c')
# print(fmt1)
# print(fmt2)
# print(fmt3)
# print(fmt4)
# struct_time 结构化时间
# Format string 格式化时间
# Timestamp 时间戳
# struct_time --> Timestamp mktime
# struct_time <-- Timestamp localtime gmtime(伦敦时间)
# struct_time --> Format string strftime
# struct_time <-- Format string strptime
# 2018年8月8日 格式化时间
# 时间戳时间 时间戳时间
# str_time = '2018-8-8'
# struct_time = time.strptime(str_time,'%Y-%m-%d')
# print(struct_time)
# time_stamp = time.mktime(struct_time)
# print(time_stamp) 1533657600.0
# time_stamp = 1500000000
# struct_time = time.localtime(time_stamp)
# fmt_time = time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
# print(fmt_time)
# 写函数,计算本月1号的时间戳时间
# 通过我拿到的这个时间,能迅速的知道我现在所在时间的年 月
# def get_timestamp():
# fmt_time = time.strftime('%Y-%m-1')
# struct_time = time.strptime(fmt_time,'%Y-%m-%d')
# res = time.mktime(struct_time)
# return res
# ret = get_timestamp()
# print(ret)
# 计算时间差的功能
# 如果是年开头,只显示年
# 如果是月开头,只显示月
# 如果是日开头,只显示日
# 如果是时开头,只显示时
# 如果是分开头,只显示分
# 如果是秒开头,只显示秒
# 2018-9-3 22:48:20 和 2018-9-4 10:15:20
def get_timestamp(old_time,new_time):
old_struct_time = time.strptime(old_time, '%Y-%m-%d %H:%M:%S')
new_struct_time = time.strptime(new_time, '%Y-%m-%d %H:%M:%S')
old_time_stamp = time.mktime(old_struct_time)
new_time_stamp = time.mktime(new_struct_time)
time_stamp_difference = new_time_stamp - old_time_stamp
struct_time_difference = time.localtime(time_stamp_difference)
fmt_time_difference_lst = time.strftime('%Y-%m-%d-%H-%M-%S',struct_time_difference).split('-')
if int(fmt_time_difference_lst[0]) > 1970:
return f'{int(fmt_time_difference_lst[0])-1970}年前'
elif int(fmt_time_difference_lst[1]) > 1:
return f'{int(fmt_time_difference_lst[1]) - 1}个月前'
elif int(fmt_time_difference_lst[2]) > 1:
return f'{int(fmt_time_difference_lst[2]) - 1}天前'
elif int(fmt_time_difference_lst[3]) > 8:
return f'{int(fmt_time_difference_lst[3]) - 8}小时前'
elif int(fmt_time_difference_lst[4]) > 0:
return f'{int(fmt_time_difference_lst[4])}分钟前'
elif int(fmt_time_difference_lst[5]) > 0:
return f'{int(fmt_time_difference_lst[5])}秒前'
new_time = '2018-10-5 10:15:20'
old_time = '2018-9-4 09:13:19'
timestamp = get_timestamp(old_time,new_time)
print(timestamp)