import time
# 1.Python提供了time模块用于格式化日期和时间
# 2.时间间隔是以秒为单位的浮点小数
# 3.每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示
# 4.时间戳单位最适于做日期运算,但是1970年之前的日期就无法以此表示了;太遥远的日期也不行,UNIX和Windows只支持到2038年
# 返回当前时间的时间戳
now_timestamp = time.time()
print(now_timestamp)
# 输出结果:1557148983.2551847
# 接收时间戳并返回时间元组
tuple_time = time.localtime(1557149189.3102524)
print(tuple_time)
# 输出结果:time.struct_time(tm_year=2019, tm_mon=5, tm_mday=6, tm_hour=21, tm_min=26, tm_sec=29, tm_wday=0, tm_yday=126, tm_isdst=0)
# 接收时间元组,并返回格式化后的时间字符串
timestamp_to_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1557149530.9394565))
print(timestamp_to_str)
# 输出结果:2019-05-06 21:32:10
# 时间字符串解析为时间元组
str_to_timestamp = time.strptime('2019-05-06 21:32:10', '%Y-%m-%d %H:%M:%S')
print(str_to_timestamp)
# 输出结果:time.struct_time(tm_year=2019, tm_mon=5, tm_mday=6, tm_hour=21, tm_min=32, tm_sec=10, tm_wday=0, tm_yday=126, tm_isdst=-1)
# 接收时间元组并返回时间戳
timestamp = time.mktime(time.strptime('2019-05-06 21:32:10', '%Y-%m-%d %H:%M:%S'))
print(timestamp)
# 把格式化后的时间字符串转换为时间戳
def timestamp_to_str(str_time=None, formatt='%Y-%m-%d %H:%M:%S'):
'''格式化后的时间字符串转换为时间戳,如果不传入格式化后的时间字符串,则获取当前时间戳'''
if str_time:
# 格式化好的时间字符串解析为时间元组
t_time = time.strptime(str_time, formatt)
# 时间元组转换为时间戳
result = time.mktime(t_time)
return int(result)
# 获取当前时间戳
return int(time.time())
# 把时间戳转换为格式化后的时间字符串
def str_to_timestamp(timestampp=None, formatt='%Y-%m-%d %H:%M:%S'):
'''时间戳转换为格式化后的时间字符串,如果不传入时间戳参数,则把当前时间的时间戳转换为格式化后的时间字符串'''
if timestamp:
# 时间戳转换为时间元组
t_time = time.localtime(timestampp)
# 时间元组转换为格式化后的时间字符串
result = time.strftime(formatt, t_time)
return result
else:
# time.strftime(format[, t])
# format -- 格式字符串
# t -- 可选的参数t是一个struct_time对象
return time.strftime(formatt)