Pyhton——时间模块详解
Python中提供了多个用于对日期和时间进行操作的内置模块:time模块、datetime模块和calendar模块。其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致。time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大。
我们先看关于表示时间的几种方法
- UTC time 世界协调时,又称格林尼治时间,世界标准时。与UTC对应各个时区的localtime,北京东八区比UTC早8小时,所以用UTC+8表示
- epoch time 表示时间开始的起点;它是一个特定的时间,不同平台上这个时间点的值不太相同,对于Unix而言,epoch time为 1970-01-01 00:00:00 UTC
- timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。
- 元组(struct_time) struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。
time模块
下面我们通过几个常用的实例详细介绍struct_time 中的属性
import time
# time.localtime() :将一个时间戳转换为当前时区的struct_time
time.localtime()
#可以看到里面有9个元素
# tm_wday=2 代表周二
# tm_yday=73 代表一年中的第73天
# tm_isdst=0 代表是否是夏令时,可取0,1,-1 取不同值可能会影响性能
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=14, tm_hour=0, tm_min=24, tm_sec=59, tm_wday=2, tm_yday=73, tm_isdst=0)
t = time.time() #返回当前时间的时间戳
print(t)
print('-------')
time.sleep(1) #线程推迟指定的时间运行,单位为秒。
print('hello,一秒后输出')
1520959413.8214176
-------
hello,一秒后输出