day22 time模块

表示方式有三种
   时间戳 给机器看的 float格式
   格式化的字符传 给人看的 格式化时间
   元祖 计算用的 结构化时间
 1  1 # 时间戳时间 
 2  2 # 返回一个时间戳,表示从1970.1.1日到现在的秒数
 3  3 print(time.time())         # 1541402524.8415277
 4  4 
 5  5 # 字符串时间
 6  6 # 字母表示是固定的,但是格式不固定随便你改
 7  7 print(time.strftime("%Y-%m-%d %H:%M:%S"))          # 2018-11-05 15:17:25
 8  8 print(time.strftime("%Y/%m/%d %a %H:%M:%S"))        # 2018/11/05 Mon 15:17:25
 9  9 print(time.strftime("%H:%M:%S"))                    # 15:17:25
10 10 
11 11 # 结构化时间
12 12 struct_time = time.localtime()
13 13 # time.struct_time(tm_year=2018, tm_mon=11, tm_mday=5, tm_hour=15, tm_min=17, tm_sec=25, tm_wday=0, tm_yday=309, tm_isdst=0)
14 14 print(struct_time)
15 15 print(struct_time.tm_year)    # 2018

时间转换
  时间戳不能和结构化时间直接转化
  只能通过格式化时间进行中介
时间戳    --------localtime/gmtime----->  结构化时间
时间戳    <---------mktime--------------  结构化时间
1 # 时间戳时间转换成格式化时间
2 t = time.time()
3 print(t)
4 # 转换确定的时间戳可以用 localtime 转换
5 print(time.localtime(3000000000))
6 # 转换动态赋值的 变量时间戳用 gmtime 转换
7 print(time.gmtime(t))
8 # 格式化时间转换成 时间戳时间 用mktime 转换
9 print(time.mktime(time.localtime()))
字符串时间  -----------strptime---------->  结构化时间
字符串时间  <---------strftime------------  结构化时间
1 # 将字符串时间转换成 结构化时间 用 strptime 转换 需要指定格式
2 print(time.strptime('2000-12.31','%Y-%m.%d'))
3     # time.struct_time(tm_year=2000, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=366, tm_isdst=-1)
4 #  将结构化时间转换成 字符串时间 strftime 转换 需要指定格式
5 print(time.strftime('%m/%d/%Y %H:%M:%S',time.localtime(3000000000)))    # 01/24/2065 13:20:00

ps:
  一些很舒服的显示
1 print(time.asctime())        # Mon Nov  5 15:33:30 2018
2 print(time.asctime(time.localtime(1500000000)))        # Fri Jul 14 10:40:00 2017
3 print(time.ctime())            # Mon Nov  5 15:33:30 2018
4 print(time.ctime(1500000000))        # Fri Jul 14 10:40:00 2017

ps: 
  计算时间差小插件~
1 # # 计算时间差
2 import time
3 true_time=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
4 time_now=time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
5 dif_time=time_now-true_time
6 struct_time=time.gmtime(dif_time)
7 print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
8                                        struct_time.tm_mday-1,struct_time.tm_hour,
9                                        struct_time.tm_min,struct_time.tm_sec))

原文地址:https://www.cnblogs.com/shijieli/p/9909440.html