time 模块提供了很多与时间相关的类和函数,下面我们介绍一些常用的。
time 模块的 struct_time 类代表一个时间对象,可以通过索引和属性名访问值。对应关系如下所示:
索引 | 属性 | 值 |
---|---|---|
0 | tm_year(年) | 如:7945 |
1 | tm_mon(月) | 1~12 |
2 | tm_mday(日) | 1~31 |
3 | tm_hour(时) | 0~23 |
4 | tm_min(分) | 0~59 |
5 | tm_sec(秒) | 0~61 |
6 | tm_wday(周) | 0~6 |
7 | tm_yday(一年内第几天) | 1~366 |
8 | tm_isdst(夏时令) | -1,0,1 |
tm_sec 范围为 0 ~ 61,值 60 表示在闰秒的时间戳中有效,并且由于历史原因支持值 61。
localtime() 表示当前时间,返回类型为 struct_time 对象,示例如下所示:
import time
t = time.localtime()
print('t-->', t)
print('tm_year-->', t.tm_year)
print('tm_year-->', t[0])
输出结果:
t--> time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=19, tm_min=49, tm_sec=54, tm_wday=6, tm_yday=335, tm_isdst=0)
tm_year--> 2019
tm_year--> 2019
函数(常量) | 说明 |
---|---|
time() | 返回当前时间的时间戳 |
gmtime([secs]) | 将时间戳转换为格林威治天文时间下的 struct_time,可选参数 secs 表示从 epoch 到现在的秒数,默认为当前时间 |
localtime([secs]) | 与 gmtime() 相似,返回当地时间下的 struct_time |
mktime(t) | localtime() 的反函数 |
asctime([t]) | 接收一个 struct_time 表示的时间,返回形式为:Mon Dec 2 08:53:47 2019 的字符串 |
ctime([secs]) | ctime(secs) 相当于 asctime(localtime(secs)) |
strftime(format[, t]) | 格式化日期,接收一个 struct_time 表示的时间,并返回以可读字符串表示的当地时间 |
sleep(secs) | 暂停执行调用线程指定的秒数 |
altzone | 本地 DST 时区的偏移量,以 UTC 为单位的秒数 |
timezone | 本地(非 DST)时区的偏移量,UTC 以西的秒数(西欧大部分地区为负,美国为正,英国为零) |
tzname | 两个字符串的元组:第一个是本地非 DST 时区的名称,第二个是本地 DST 时区的名称 |
epoch:1970-01-01 00:00:00 UTC
基本使用如下所示:
import time
print(time.time())
print(time.gmtime())
print(time.localtime())
print(time.asctime(time.localtime()))
print(time.tzname)
# strftime 使用
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))