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')
  1. import time
  2. t1 = time.time()
  3. t2 = time.localtime()
  4. t3 = time.asctime()
  5. print(t1)
  6. # 输出:1652175875.7
  7. print(t2)
  8. # 输出: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)
  9. print(t3)
  10. # 输出: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
适合做计算 适合提取,或转换媒介 适合输出

2 Calendar 模块



9 参考

Python 日期和时间 | 菜鸟教程