#时间模块
#time模块中时间表现的格式主要有三种:
# 1.时间戳时间(timestamp),时间戳表示是从英国敦伦时间1970年1月1日00:00:00开始按秒计算的偏移量
# 2.结构化时间(struct_time),时间对象,能够通过属性名来获取对象中的值,共有九个元素组
# 3.格式化时间(format_time),已格式化的结构让时间更具可读性,可以根据自定义时间格式和固定格式
#常用方法:
# 1:time.sleep(secs) # (线程)推迟指定的时间运行,单位为秒
# import time
# time.sleep(3) # 程序运行时间延迟
# print(222)
# time.sleep(2)
# print(3333)
# 2:time.time() # 获取当前的时间戳时间
# import time
# print(time.time()) #1533718497.7569118 float类型
#表示时间的三种方式
#1)时间戳表示从1970年1月1日00:000:00开始按秒计算的偏移量
# 运行type(time.time()) ,返回的是float类型
#2) 格式化的时间字符串
# %Y 四位数的年份表示(000-9999)
# %y 两位数的年份表示(00-99)
# %m 月份 (01-12)
# %d 月中的一天(01-31)
# %H 24小时制时间(00-23)
# %I 12小时制时间(00-12)
# %M 分钟数(00-59)
# %S 秒 (00-59)
# %a 本地简化星期名称()
# %A 本地完整星期名称
# %b 本地简化月份名称
# %B 本地完整月份名称
# %c 本地相应的日期表示和时间表示
# %j 年内的一天(001-365)
# %p 本地A.M或P.M 的等价符
# %U 一年中的星期数(00-53)星期天为星期的开始
# %w 星期(0-6) 星期天为星期的开始
# %W 一年中的星期数(00-53)星期一位星期的开始
# %x 本地相应的日期时间
# %X 本地相应的时间表示
# %Z 当前时区的名称
# %% %号本身
#3)结构化时间(struct_time) 元组中共有9个元素(年,月,日,时,分,秒,一年中第几周
# 索引 属性 值
# 0 tm_year(年) 如2018
# 1 tm_mon(月) 1-12
# 2 tm_mday(日) 1-31
# 3 tm_hour(时) 0-23
# 4 tm_min(分) 0-59
# 5 tm_sec(秒) 0-60
# 6 tm_wday(星期) 0-6(0表示周一)
# 7 tm_wday(星期) 1-366
# 8 tm_isdst(是否夏令时) 默认为0
#
#在python中表示时间的几种格式
import time
# 获取当前时间戳时间
time.time()
print(time.time()) # 1533721056.719276
# 时间字符串
time.strftime("%Y-%m-%d %X") # 当前格式化时间
print(time.strftime("%Y-%m-%d %X"))
time.strftime("%Y-%m-%d %H:%M:%S")
print(time.strftime("%Y-%m-%d %H:%M:%S"))
# 时间元组 localtime 将一个时间戳时间转换为当前时区的struct_time
time.localtime() # def localtime(seconds=None)
print(time.localtime()) # 获取当前格式化时间
# time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=17, tm_min=47, tm_sec=22, tm_wday=2, tm_yday=220, tm_isdst=0)
# 注:时间戳时间是计算机能够识别的时间,时间字符串是人能够看懂的时间;元组则是用
# 来操作时间的.
#几种格式之间的转换
#1时间戳时间转 结构化时间
#time.gmtime(时间戳) # UCT时间,与英国伦敦当地时间一致
#time.localtime(实际戳) # 当地时间,北京时间,与UTC相差8小时
print(time.gmtime(1500000000))
#结果
#time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm
print(time.localtime(1500000000))
#结果
#time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
# 两个结果的时间相差8个小时
#2 结构化时间转时间戳时间
#time.mktime(结构化时间)
time_tuple = time.localtime(1500000000)
print(time.mktime(time_tuple))
# 结果:
# 1500000000.0
# 3) 结构时间--转格式化时间
#time.strftime("格式化时间","结构化时间") 结构化时间不传,则显示当前时间
print(time.strftime("%Y-%m-%d"))
print(time.strftime("%Y-%m-%d",time.localtime(1500000000)))
# 结果
# 2018-08-08 # 不传参显示当前时间
# 2017-07-14 传参显示传参对应的格式化时间
#4.字格式化时间转 结构化时间
print(time.strptime("2018-8-4","%Y-%m-%d"))
print(time.strptime("2018/8/4","%Y/%m/%d"))
#结果
#time.struct_time(tm_year=2018, tm_mon=8, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=216, tm_isdst=-1)
# time.struct_time(tm_year=2018, tm_mon=8, tm_mday=4, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=216, tm_isdst=-1)
#5.结构化时间 转 %a %b %d %H:%M:%Y串
#time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
print(time.asctime())
print(time.asctime(time.localtime(1500000000)))
#结果
#Wed Aug 8 18:47:44 2018
#Fri Jul 14 10:40:00 2017
#6.时间戳时间 转 %a %b %d %H:%M:%Y串
#time.ctime(时间戳时间) 如果不传参数,直接返回当前时间的格式化串
print(time.ctime())
print(time.ctime( 1500000000))
#结果
#Wed Aug 8 18:50:39 2018
#Fri Jul 14 10:40:00 2017