一、时间表示方式
- 时间戳 timestamp:表示的是从 1970 年1月1日 00:00:00 开始按秒计算的偏移量
- UTC(Coordinated Universal Time, 世界协调时)亦即格林威治天文时间,世界标准时间。在中国为 UTC+8 DST(Daylight Saving Time) 即夏令时;
- 结构化时间(struct_time): 由 9 个元素组成
二、常用的时间函数:
- time.sleep(t)
import time
# 用来睡眠或者暂停程序t秒
time.sleep(t)
time.sleep(10)
- time.time()
# 返回时间戳
time.time()
1670916469.3851326
time.gmtime([secs])
#返回(UTC时区)结构化时间
time.gmtime(time.time())
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=13, tm_hour=7, tm_min=39, tm_sec=22, tm_wday=1, tm_yday=347, tm_isdst=0)
- time.localtime([secs])
# 返回当前时区的结构化时间,参数不写默认为当前时间戳
time.localtime()
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=13, tm_hour=15, tm_min=46, tm_sec=41, tm_wday=1, tm_yday=347, tm_isdst=0)
- time.mktime(t)
# 将格式化时间转化成为时间戳
time.mktime(time.localtime())
1670918071.0
- time.strftime(format [, t])
import time
# %Y:年 %m:月 %d:日 %H:小时 %M:分钟 %S:秒
t4 = time.strftime("%Y-%m-%d %H:%M:%S")
print("t4:", t4) # 2022-06-27 16:20:27
- time.strptime(string[,format])
import time
t5 = time.strptime("2099-06-09 13:13:13","%Y-%m-%d %H:%M:%S")
print(t5)
t6 = time.strptime("2011-12-12", "%Y-%m-%d")
print(t6)
print(t5 > t6) # True 结构化时间越靠后的越大
二、结构化时间(struct_time)
- 结构化时间共有9个元素,按顺序排列如下表:
索引 | 属性 | 取值范围 |
---|---|---|
0 | tm_year(年) | 比如 2021 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 59 |
6 | tm_wday(weekday) | 0 - 6 0表示周一,6表示周日 |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_isdst(是否是夏令时) | 默认为-1 |
- 结构化时间是一个序列,可以通过以下几种方式取值:
1.可以通过索引进行取值
2.也可以进行分片切片取值
3.或者通过属性名获取对应的值
>>> import time
>>> t = time.localtime()
>>> t
time.struct_time(tm_year=2021, tm_mon=9, tm_mday=1, tm_hour=14, tm_min=23, tm_sec=29, tm_wday=2, tm_yday=244, tm_isdst=0)
# 通过索引进行取值
>>> t[3]
14
# 分片切片取值
>>> t[1:3]
(9, 1)
# 通过属性名获取对应的值
>>> t.tm_mon
9
三、格式化时间字符串
四、时间格式之间的转换
- Python的三种类型时间格式,可以互相进行转换
索引 | 属性 | 取值范围 |
---|---|---|
从 | 到 | 方法 |
时间戳 | UTC结构化时间 | gmtime() |
时间戳 | 本地结构化时间 | localtime() |
本地结构化时间 | 时间戳 | mktime() |
结构化时间 | 格式化字符串 | strftime() |
格式化字符串 | 结构化时间 | strptime() |