1 time 模块
1.1 相关概念
1.1.1 时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。我们运行type(time.time())
,返回的是float
类型。返回时间戳方式的函数主要有time()
,clock()
等。
有效时间:1970 - 2038
1.1.2 时间元组
元组(struct_time
)方式:struct_time
元组共有9个元素,返回struct_time
的函数主要有gmtime()
,localtime()
,strptime()
。
索引 | 属性 | 说明 | 值 |
---|---|---|---|
0 | tm_year | 年 | 2022 |
1 | tm_mon | 月 | 44573 |
2 | tm_mday | 日 | 44592 |
3 | tm_hour | 时 | 0 - 23 |
4 | tm_min | 分 | 0 - 59 |
5 | tm_sec | 秒 | 0 - 61 |
6 | tm_wday | 周几 | 0 - 6(0表示周日) |
7 | tm_yday | 一年中的第几天 | 1 - 366 |
8 | tm_isdst | 是否是夏令时 | 默认为-1 |
1.1.3 格式化日期
符号 | 说明 | 返回值 | ||
---|---|---|---|---|
%a |
本地化 | 星期缩写名称 | Mon /Tue /Wed /Thu /Fri /Sat /Sun |
|
%A |
星期完整名称 | Monday /Tuesday /Wednesday /Thursday /Friday /Saturday /Sunday |
||
%b |
月缩写名称 | Jan /Feb /Mar /Apr /May /Jun /July /Aug /Sep /Oct /Nov /Dec |
||
%B |
月完整名称 | January /February /March /April /May /June /July /August /September /October /November /December |
||
%c |
星期 月 日 时间 年 | Tue May 10 05:34:52 2022 |
||
%p |
白天/晚上 | AM /PM |
||
%x |
日期 | 38647 |
||
%X |
时间 | 0.232546296 |
||
%d |
十进制数 | 月中日 | [01,31] |
|
%H |
24小时制的小时 | [00,23] |
||
%I |
12小时制的小时 | [01,12] |
||
%j |
年中日 | [001,366] |
||
%m |
月 | [01,12] |
||
%M |
分钟 | [00,59] |
||
%S |
秒 | [00,61] |
||
%U |
一年中的第几周 | [00,53] |
+ 第一个星期日作为第一周的第一天 | |
%W |
+ 第一个星期一作为第一周的第一天 | |||
%w |
一周中第几日 | [0,6] |
+ 0 代表星期日 |
|
%y |
没有世纪的年份 | [00,99] |
||
%Y |
带世纪的年份 | 2022 |
||
%z |
带符号数表示时区 | [-1200,+1200] |
||
%Z |
时区名称 | UTC |
||
%% |
字符 | % 字符 |
% |
1.1.4 UTC/DST
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
1.2 常用功能
1.2.1 方法/函数
方法/函数 | 说明 | 注释 | |
---|---|---|---|
sleep(secs) |
休眠指定时间 | + 单位为s |
|
asctime() |
返回当前 | 格式化日期 | + 返回:星期 月 日 时间 年(24字符) |
strftime([format]) |
+ 参考格式化字符 | ||
localtime() 本地化ctime() 本地化gmtime() UTC |
时间元组 | ||
time() |
时间戳 | ||
clock() 第一次使用 |
|||
clock() 后续使用 |
自首次间隔 | ||
mktime() |
时间元组转换为 | ||
localtime([<font style="color:rgb(34, 34, 34);">secs]</font>) ctime([secs]) gmtime([<font style="color:rgb(34, 34, 34);">secs]</font>) |
时间戳转换为 | 时间元组 | |
strptime() asctime([t]) |
格式化日期转换为 | ||
strftime(format[,t]) |
时间元组转换为 | 格式化日期 | + 参考格式化字符 + 参数缺省值为 localtime() |
1.2.2 属性
属性 | 说明 | 返回值 |
---|---|---|
timezone |
当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲<=0大部分欧洲,亚洲,非洲)。 | 0 |
tzname |
一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。 | ('UTC', 'UTC') |
import time
t1 = time.time()
t2 = time.localtime()
t3 = time.asctime()
print(t1)
# 输出:1652175875.7
print(t2)
# 输出:time.struct_time(tm_year=2022, tm_mon=5, tm_mday=10, tm_hour=9, tm_min=44, tm_sec=35, tm_wday=1, tm_yday=130, tm_isdst=0)
print(t3)
# 输出:Tue May 10 09:44:35 2022
1.2.3 三种时间格式转换
时间戳time() clock() 首次使用 |
localtime([<font style="color:rgb(34, 34, 34);">secs]</font>) ctime([secs]) gmtime([<font style="color:rgb(34, 34, 34);">secs]</font>) |
时间元组localtime() 本地ctime() 本地gmtime() UTC |
strftime(format[,t]) asctime([t]) |
格式化日期asctime() strftime(format) |
---|---|---|---|---|
————————————> | ————————————> | |||
<———————————— | <———————————— | |||
<font style="color:rgb(34, 34, 34);">mktime(t)</font> |
strptime() |
|||
1652175106.73 |
time.struct_time(tm_year=2022, tm_mon=5, tm_mday=10, tm_hour=8, tm_min=9, tm_sec=5, tm_wday=1, tm_yday=130, tm_isdst=0) |
Tue May 10 09:39:10 2022 |
||
适合做计算 | 适合提取,或转换媒介 | 适合输出 |