day22 time模块

时间:2023-03-10 05:53:53
day22 time模块
表示方式有三种
   时间戳 给机器看的 float格式
   格式化的字符传 给人看的 格式化时间
   元祖 计算用的 结构化时间
  1 # 时间戳时间
2 # 返回一个时间戳,表示从1970.1.1日到现在的秒数
3 print(time.time()) # 1541402524.8415277
4
5 # 字符串时间
6 # 字母表示是固定的,但是格式不固定随便你改
7 print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2018-11-05 15:17:25
8 print(time.strftime("%Y/%m/%d %a %H:%M:%S")) # 2018/11/05 Mon 15:17:25
9 print(time.strftime("%H:%M:%S")) # 15:17:25
10
11 # 结构化时间
12 struct_time = time.localtime()
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 print(struct_time)
15 print(struct_time.tm_year) #

时间转换
  时间戳不能和结构化时间直接转化
  只能通过格式化时间进行中介
时间戳    --------localtime/gmtime----->  结构化时间
时间戳    <---------mktime--------------  结构化时间
 # 时间戳时间转换成格式化时间
t = time.time()
print(t)
# 转换确定的时间戳可以用 localtime 转换
print(time.localtime(3000000000))
# 转换动态赋值的 变量时间戳用 gmtime 转换
print(time.gmtime(t))
# 格式化时间转换成 时间戳时间 用mktime 转换
print(time.mktime(time.localtime()))
字符串时间  -----------strptime---------->  结构化时间
字符串时间  <---------strftime------------  结构化时间
 # 将字符串时间转换成 结构化时间 用 strptime 转换 需要指定格式
print(time.strptime('2000-12.31','%Y-%m.%d'))
# 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)
# 将结构化时间转换成 字符串时间 strftime 转换 需要指定格式
print(time.strftime('%m/%d/%Y %H:%M:%S',time.localtime(3000000000))) # 01/24/2065 13:20:00
ps:
  一些很舒服的显示
 print(time.asctime())        # Mon Nov  5 15:33:30 2018
print(time.asctime(time.localtime(1500000000))) # Fri Jul 14 10:40:00 2017
print(time.ctime()) # Mon Nov 5 15:33:30 2018
print(time.ctime(1500000000)) # Fri Jul 14 10:40:00 2017

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