python time,模块,时间类型转换。
python 时间类型转换,是我们经常遇到的问题,做下总结,记录一下。(目前只有time模块,有时间整理datetime)
1. 了解以下几个时间概念:
- Timestamp(时间戳): 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数(摘自百度百科)
- struct_time时间元组
- format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
2. 关于time的常用方法
- 获取当前时间,float类型
1 a_float = time.time() 2 print(a_float) 3 print(type(a_float))
- 将时间戳类型时间转换为struct_time(时间元组) 的方法
- time.gmtime()
1 struct = time.gmtime(a_float)
2 print(struct)
3 print(type(struct))
#time.struct_time(tm_year=2018, tm_mon=12, tm_mday=3, tm_hour=3, tm_min=32, tm_sec=45, tm_wday=0, tm_yday=337, tm_isdst=0)
#time.struct_time()参数解释:年,月,日,时,分,秒,周几(0-6,0表示周日),一年中的第几天,是否是夏令时(默认为-1)
- time.localtime()
1 localtime = time.localtime(time.time()) 2 print(localtime) 3 print(type(localtime))
- 将struct_time(时间元组)转换为时间戳的方法
- time.mktime()
1 tempsTime = time.mktime(localtime) 2 print(tempsTime) 3 print(type(tempsTime))
- 将struct_time(时间元组)格式化为字符串的方法
- time.strftime( format [, t] )
- format 格式化时间字符串
- t 可选参数,为一个struct_time对象
代码如下:
1 #将时间元组格式化为字符串 2 st_time = time.strftime('%Y-%m-%d',time.gmtime()) 3 print(st_time) 4 5 #%X 得到当前时间 6 local_time = time.strftime('%Y-%m-%d %X') 7 print(local_time) 8 print(type(local_time)) 9 10 #返回当地日期和时间 11 t = time.strftime('%x %X') 12 print(t) 13 print(type(t)) 14 #直接使用字符串拼接成为格式化时间字符串 15 tt = time.gmtime() 16 print(type(tt)) 17 print(str(tt.tm_year) + '年' + str(tt.tm_mon) + '月' + str(tt.tm_mday) + '日')
- time.strptime(string,format) 是将一个字符串格式日期,转换为struct_time(时间元组)
- string 日期字符串
- format 格式化字符串‘
代码如下:
1 #创建一个时间字符串变量strtime 2 strtime = "2018-01-13 22:20:30" 3 # ============================================================================= 4 # 通过strptime()函数将strtime转化成strcut_time形式, 5 # 格式参数必须的"%Y-%m-%d %H:%M:%S",且必须strtime的时间参数一一匹配 6 # ============================================================================= 7 struct_tm = time.strptime(strtime,'%Y-%m-%d %H:%M:%S') 8 print(struct_tm) 9 print(type(struct_tm))
- time加减主要是通过时间戳的方式进行加减
a = time.time() b = time.time() print(a+b) print(b-a)