time模块
基本方法
官方文档:https://docs.python.org/zh-cn/3/library/time.html
import time
time.sleep(3)
# 推迟指定的时间运行,单位为秒
time.time()
# 获取当前时间戳
表示时间的三种方式
时间戳
描述
时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回的是float类型
使用
import time
print(time.time())
# 1648554881.1094248
# 计算运行程序时间
start = time.time()
print("Hello")
time.sleep(3)
print("World")
end = time.time()
times = end - start
print(f"运行了{time}秒")
# 运行了3.0042519569396973
结构化时间
描述
主要展示给计算机看,人看起来不太方便
使用
import time
times = time.localtime()
print(times)
# time.struct_time(tm_year=2022, tm_mon=3, tm_mday=29, tm_hour=20, tm_min=1, tm_sec=35, tm_wday=1, tm_yday=88, tm_isdst=0)
索引(Index) | 属性(Attribute) | 值(Values) |
---|---|---|
0 | tm_year(年) | 比如2011 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 60 |
6 | tm_wday(weekday) | 0 - 6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_isdst(是否是夏令时) | 默认为0 |
格式化时间
描述
人最容易接收的一种时间格式
使用
import time
times = time.strftime('%Y-%m-%d %H:%M:%S')
print(times)
# 2022-03-29 20:10:19
times = time.strftime('%Y-%m-%d %X')
# 2022-03-29 20:10:19
指令 | 含意 |
---|---|
%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 |
时区偏移表示与UTC/GMT的正时差或负时差,其形式为+HHMM或-HHMM,其中H表示十进制小时数,M表示十进制分钟数[-23:59,+23:59] |
%Z |
时区名称(如果不存在时区,则不包含字符) |
%% |
字面的 '%' 字符。 |
时间类型的转换
import time
times = time.localtime(time.time())
print(times)
# time.struct_time(tm_year=2022, tm_mon=3, tm_mday=29, tm_hour=20, tm_min=32, tm_sec=24, tm_wday=1, tm_yday=88, tm_isdst=0)
datetime模块
官方文档:https://docs.python.org/zh-cn/3/library/datetime.html
基本方法
import datetime
times = datetime.date.today()
print(times)
# 2022-03-29
times = datetime.datetime.today()
print(times)
# 2022-03-29 20:37:00.244096
print(times.year) # 获取年
# 2022
print(times.month) # 获取月
# 3
print(times.weekday()) # 星期0-6
# 1
print(times.isoweekday()) # 星期1-7
# 2
计算时间差
import datetime
times = datetime.datetime.today()
times_tel = datetime.timedelta(days=4) # 参数:days=0, seconds=0, microseconds=0,milliseconds=0, minutes=0, hours=0, weeks=0
print(times_tel)
# 4 days, 0:00:00
print(times+times_tel) # 获取后四天
# 2022-04-02 20:43:18.649433