import time
'''
有些情况下需要把时间存储为过去了多少秒(秒数),但是另外一些情况下,程序需要访问一个时期的各个字段(例如,年月日)。
time模块定义了struct_time来保存日期和时间值,其中分解了各个组成部分以便于访问。
很多函数都要处理struct_time值而不是浮点值
'''
print(time.gmtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=8, tm_hour=10, tm_min=27, tm_sec=29, tm_wday=4, tm_yday=67, tm_isdst=0)
print(time.localtime())
# time.struct_time(tm_year=2019, tm_mon=3, tm_mday=8, tm_hour=18, tm_min=27, tm_sec=53, tm_wday=4, tm_yday=67, tm_isdst=0)
print(time.mktime(time.gmtime())) # 1552012197.0
'''
gmtime函数以UTC格式返回当前时间。localtime会返回应用了当前的时区的系统时间,mktime取一个time_struct实例,返回时间戳
'''
def show_struct(s: time.struct_time):
print(f"年:", s.tm_year)
print(f"月:", s.tm_mon)
print(f"日:", s.tm_mday)
print(f"时:", s.tm_hour)
print(f"分:", s.tm_min)
print(f"秒:", s.tm_sec)
print(f"这一周的第几天,从0开始,0是周一:", s.tm_wday)
print(f"这一年的第几天:", s.tm_yday)
print(f"是否时夏令时的旗帜:", s.tm_isdst)
show_struct(time.localtime())
'''
年: 2019
月: 3
日: 8
时: 18
分: 36
秒: 4
这一周的第几天,从0开始,0是周一: 4
这一年的第几天: 67
是否时夏令时的旗帜: 0
'''
# 此外我再补充一下gmtime和localtime,这个和ctime一样。可以接收一个时间戳,如果不传参,那么默认是当前系统的时间戳
print(time.localtime(1))
# time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
'''
相当于从纪元过了1秒钟
'''