专业编程基础技术教程

网站首页 > 基础教程 正文

Python编程基础:时间time模块

ccvgpt 2024-08-12 15:02:21 基础教程 10 ℃

time模块提供了与时间相关的函数,本文介绍time模块的常用函数。

获取时间戳:time()函数

时间戳指自1970年1月1日0点0分0秒以来的总秒数(浮点数)。

Python编程基础:时间time模块

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
'''

Tags:

最近发表
标签列表