1.引言

Python 提供了一个 time模块来格式化时间,在python爬虫等应用中相当有用。

time模块包含用于获取当前时间 、操作时间和日期、从字符串中读取日期、将日期格式化为字符串函数。日期可以表示为自从 1970 年 1 月 1 日午夜(历元)经过了秒的一个实数,也可以表示为包含9个整数的元组。

2.时间戳与时间元组

2.1时间戳

import time
ticks = time.time()
print ("当前时间戳为:", ticks)
当前时间戳为: 1645263377.554756

上面这个案例演示了用time()获取当前的时间戳。

2.2时间元组

很多Python函数用一个元组装起来的9组数字处理时间:

索引属性字段
0tm_year如2000,2022等
1tm_mon范围1~12
2tm_mday范围1~31
3tm_hour小时范围0~23
4tm_min分钟范围0~59
5tm_sec0~61 (60~61 是闰秒)
6tm_wday星期范围0~6 (0表示周一)
7tm_yday儒略日1到366
8tm_isdst夏令时0、1或-1
N/Atm_zone时区时区名称的缩写
N/Atm_gmtoffUTC东偏以秒为单位

秒的取值范围为0~61,考虑到闰一秒或闰两秒的情形。夏令时数字是布尔值,如果使用-1,表示未知的,那么使用mktime()可能得到正确的值。

import time

localtime = time.localtime()
print ("本地时间为 :", localtime)
本地时间为 : time.struct_time(tm_year=2022, tm_mon=2, tm_mday=19, tm_hour=17, tm_min=49, tm_sec=21, tm_wday=5, tm_yday=50, tm_isdst=0)

上面这个案例演示了获取当前时间的时间元组。

localtime()的缺省值为time()返回的当前时间戳。

3.时间格式化

3.1获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

import time

localtime = time.asctime(time.localtime())
print ("本地时间为 :", localtime)
本地时间为 : Sat Feb 19 17:59:17 2022

此处也可直接使用asctime(),因为asctime()的缺省值为localtime()返回的当前时间。

亦可使用 ctime()ctime() 等价于 asctime(localtime())

3.2自定义格式化

我们可以使用 time 模块的 strftime 方法来格式化日期:time.strftime(format[, t]),第一个参数是格式化字符串,第二个参数是时间元组。

import time

print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
2022-02-19 18:28:08
Sat Feb 19 18:28:08 2022

上面的案例演示了将本地时间进行格式化输出。

格式化符号含意
%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 。
%S十进制数 [00,61] 表示的秒。
%U十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。
%w十进制数 [0(星期日),6] 表示的周中日。
%W十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。
%x本地化的适当日期表示。
%X本地化的适当时间表示。
%y十进制数 [00,99] 表示的没有世纪的年份。
%Y十进制数表示的带世纪的年份。
%z十进制带符号数[-1200,+1200]表示时区。
%Z时区名称。
%%字面的 ‘%’ 字符。

4.附录

4.1重要函数

函数描述
asctime([t])将时间元组转换为字符串
ctime([secs])将秒转换为字符串
localtime([secs])将秒转换为当地时间的时间元组
gmtime([secs])将秒转换为UTC时间的时间元组
mktime(t)将时间元组转换为当地时间
sleep(secs)休眠secs秒
strftime(format[, t])将字符串转换为时间元组
time()当前时间,自纪元以来的秒

4.2参考

官方文档:https://docs.python.org/zh-cn/3/library/time.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐