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 timet1 = time.time()t2 = time.localtime()t3 = time.asctime()print(t1)# 输出:1652175875.7print(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 |
||
| 适合做计算 | 适合提取,或转换媒介 | 适合输出 |
