工作当中经常会遇到时间或者日期的计算和格式转换,因此时间模块就显得非常重要,Python内置提供了 time和 datetime和 calendar模块用来格式化日期和时间.
time模块
Python中时间可以概括为三种类型:
- float浮点数,即时间戳
- struct tuple 时间元组
- str字符串,规定格式表示
时间戳介绍
每个时间戳都以自从1970年1月1日午夜(历元)到当前经过了多长时间来表示,时间间隔是以秒为单位的浮点小数.
实例
[Python] 纯文本查看 复制代码
1
2
3
4
|
import time print ( '本地时间戳: ' , time.time()) # 本地时间戳: 1562584408.3060238 |
时间戳单位最适于做日期运算,但是1970年之前的日期就无法以此表示了.太遥远的日期也不行, UNIX和 Windows只支持到2038年.
时间元组格式
具体实例
[Python] 纯文本查看 复制代码
1
2
3
|
import time # 时间元组格式 print ( '本地时间为: ' , time.localtime(time.time())) |
输出结果:
[Python] 纯文本查看 复制代码
1
|
本地时间为: time.struct_time(tm_year = 2019 , tm_mon = 7 , tm_mday = 8 , tm_hour = 19 , tm_min = 28 , tm_sec = 28 , tm_wday = 0 , tm_yday = 189 , tm_isdst = 0 ) |
2种时间字符串格式第一种
[Python] 纯文本查看 复制代码
1
|
2019 - 07 - 08 19 : 32 : 07 # 正常格式 |
第二种
[Python] 纯文本查看 复制代码
1
|
Mon Jul d 19 : 32 : 2019 # 英文格式 |
几种时间格式的转换
时间戳转时间元组
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
|
import time # 第一种: 结果是UTC时间 ret1 = time.gmtime() # 第二种: 结果是本地时间(UTC+8) ret2 = time.localtime() print (ret1) print (ret2) |
输出结果
[Python] 纯文本查看 复制代码
1
2
|
time.struct_time(tm_year = 2019 , tm_mon = 7 , tm_mday = 8 , tm_hour = 11 , tm_min = 44 , tm_sec = 46 , tm_wday = 0 , tm_yday = 189 , tm_isdst = 0 ) time.struct_time(tm_year = 2019 , tm_mon = 7 , tm_mday = 8 , tm_hour = 19 , tm_min = 44 , tm_sec = 46 , tm_wday = 0 , tm_yday = 189 , tm_isdst = 0 ) |
时间元组转时间戳
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
|
import time # 1.获取当前时间元组格式 struct_time = time.localtime() # 2.转时间戳 print (time.mktime(struct_time)) |
输出格式
[Python] 纯文本查看 复制代码
1
|
1562586423.0 |
时间元组转字符串(format_time)
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
|
import time # 1. 获取时间元组 struct_time = time.localtime() # 2. 转换字符串格式 print (time.strftime( '%Y-%m-%d %H:%M:%S' , struct_time)) print (time.strftime( '%a %b %d %H:%M:%Y' , struct_time)) print (time.asctime(struct_time)) |
输出
[Python] 纯文本查看 复制代码
1
2
3
|
2019 - 07 - 08 19 : 52 : 21 Mon Jul 08 19 : 52 : 2019 Mon Jul 8 19 : 52 : 21 2019 |
时间字符串转换为时间戳
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
|
import time t = '2019-07-08 19:52:21' # 1. 转时间元组 struct_time = time.strptime(t, '%Y-%m-%d %H:%M:%S' ) # 2. 转时间戳 print (time.mktime(struct_time)) |
输出
[Python] 纯文本查看 复制代码
1
|
1562586741.0 |