Python编程基础:时间time模块 python time_ns
time模块提供了与时间相关的函数,本文介绍time模块的常用函数。
获取时间戳:time()函数
时间戳指自1970年1月1日0点0分0秒以来的总秒数(浮点数)。
import time
print(time.time()) #结果:1690988829.7923753
获取本地时间:localtime()函数
localtime([seconds])函数可以获取指定时间戳seconds的本地时间,如未指定参数,则返回当前的本地时间。
localtime()函数返回值是struct_time对象,该对象可以通过索引和属性名访问值。 存在以下值:
索引 | 属性 | 值 |
0 | tm_year | (年份,如2023) |
1 | tm_mon | range [1, 12] |
2 | tm_mday | range [1, 31] |
3 | tm_hour | range [0, 23] |
4 | tm_min | range [0, 59] |
5 | tm_sec | range [0, 61] |
6 | tm_wday | range [0, 6] ,周一为 0 |
7 | tm_yday | range [1, 366] |
8 | tm_isdst | 0, 1 或 -1;如下所示 |
N/A | tm_zone | 时区名称的缩写 |
N/A | tm_gmtoff | 以秒为单位的UTC以东偏离 |
import time
print(time.localtime(1690989115.0581512)) #结果:time.struct_time(tm_year=2023, tm_mon=8, tm_mday=2, tm_hour=23, tm_min=11, tm_sec=55, tm_wday=2, tm_yday=214, tm_isdst=0)
st = time.localtime()
print(st) #结果:time.struct_time(tm_year=2023, tm_mon=8, tm_mday=2, tm_hour=23, tm_min=20, tm_sec=44, tm_wday=2, tm_yday=214, tm_isdst=0)
print(st.tm_year) #结果:2023
print(st.tm_mon) #结果:8
print(st.tm_mday) #结果:3
格式化显示时间:strftime()函数
strftime(format[, t])可以自定义格式化显示时间,format是格式参数,t是可选参数,如果提供则格式化该时间,否则格式化当前时间。
以下指令可以嵌入 format 字符串中。它们显示时没有可选的字段宽度和精度规范,并被 strftime() 结果中的指示字符替换:
指令 | 含意 | 备注 |
%a | 本地化的缩写星期中每日的名称。 | |
%A | 本地化的星期中每日的完整名称。 | |
%b | 本地化的月缩写名称。 | |
%B | 本地化的月完整名称。 | |
%c | 本地化的适当日期和时间表示。 | |
%d | 十进制数 [01,31] 表示的月中日。 | |
%H | 十进制数 [00,23] 表示的小时(24小时制)。 | |
%I | 十进制数 [01,12] 表示的小时(12小时制)。 | |
%j | 十进制数 [001,366] 表示的年中日。 | |
%m | 十进制数 [01,12] 表示的月。 | |
%M | 十进制数 [00,59] 表示的分钟。 | |
%p | 本地化的 AM 或 PM 。 | (1) |
%S | 十进制数 [00,61] 表示的秒。 | (2) |
%U | 十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。 | (3) |
%w | 十进制数 [0(星期日),6] 表示的周中日。 | |
%W | 十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。 | (3) |
%x | 本地化的适当日期表示。 | |
%X | 本地化的适当时间表示。 | |
%y | 十进制数 [00,99] 表示的没有世纪的年份。 | |
%Y | 十进制数表示的带世纪的年份。 | |
%z | 时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示,其中H表示十进制小时数字,M表示小数分钟数字 [-23:59, +23:59] 。1 | |
%Z | 时区名称(如果不存在时区,则不包含字符)。已弃用。 1 | |
%% | 字面的 '%' 字符。 |
注释:
(1)当与 strptime() 函数一起使用时,如果使用 %I 指令来解析小时, %p 指令只影响输出小时字段。
(2)范围真的是 0 到 61 ;值 60 在表示 leap seconds 的时间戳中有效,并且由于历史原因支持值 61 。
(3)当与 strptime() 函数一起使用时, %U 和 %W 仅用于指定星期几和年份的计算。
import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))
#结果:2023-08-02 23:32:58
格式字符串转为struct_time对象:strptime()函数
strptime(string[, format])可以把格式显示的时间字符串转为struct_time对象。
format 参数使用与 strftime() 相同的指令。
import time
print(time.strptime('2023-08-02 23:32:58', '%Y-%m-%d %H:%M:%S'))
#结果:time.struct_time(tm_year=2023, tm_mon=8, tm_mday=2, tm_hour=23, tm_min=32, tm_sec=58, tm_wday=2, tm_yday=214, tm_isdst=-1)
暂停程序执行:sleep()函数
使用sleep(secs)可以暂停程序执行,等待secs秒后继续执行。secs是浮点数。
import time
for i in range(5):
print(time.strftime('%H:%M:%S'), i)
time.sleep(1)
'''结果:
23:45:22 0
23:45:23 1
23:45:24 2
23:45:25 3
23:45:26 4
'''