Python3 日期和时间

处理日期和时间是编程中的高频需求:记录日志、统计报表、计算倒计时都离不开它。Python 标准库 datetime 模块提供 datetime、date、time、timedelta 等类,可方便地获取、运算和格式化时间。

核心类简介

作用
datetime日期 + 时间,最常用
date只表示日期(年、月、日)
time只表示时间(时、分、秒)
timedelta时间间隔,用于日期运算

获取当前时间

from datetime import datetime, date, time

now = datetime.now()          # 当前日期时间
print(now)                    # 输出:2025-01-06 10:30:45.123456
print(date.today())           # 输出:2025-01-06
print(time(10, 30, 45))       # 输出:10:30:45
print(datetime(2025, 1, 6, 10, 30))  # 构造指定时间,输出:2025-01-06 10:30:00

取出年月日时分秒

from datetime import datetime

now = datetime.now()
print(now.year, now.month, now.day)      # 输出:2025 1 6
print(now.hour, now.minute, now.second)  # 输出:10 30 45

时间运算 timedelta

两个日期相减得到时间差,也可直接加/减天数与小时:

from datetime import datetime, timedelta

d1 = datetime(2025, 1, 1)
d2 = datetime(2025, 1, 10)
print((d2 - d1).days)          # 输出:9
print(d1 + timedelta(days=30)) # 输出:2025-01-31 00:00:00
print(d1 + timedelta(hours=5)) # 输出:2025-01-01 05:00:00
print(d1 < d2)                 # 输出:True(可直接比较)

strftime 与 strptime

strftime 把日期格式化成字符串(输出),strptime 把字符串解析成日期(输入):

from datetime import datetime

s = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(s)                             # 输出:2025-01-06 10:30:45
dt = datetime.strptime("2025-01-01 08:00:00", "%Y-%m-%d %H:%M:%S")
print(dt)                            # 输出:2025-01-01 08:00:00

常用格式符

格式符含义示例
%Y四位年份2025
%y两位年份25
%m月份(补零)01
%d日(补零)06
%H24 小时制小时10
%M分钟30
%S45
%A星期全名Monday

时间戳转换

时间戳是自 1970-01-01 起的秒数,datetime 与时间戳可互转:

from datetime import datetime

now = datetime.now()
ts = now.timestamp()               # 转成时间戳
print(ts)                          # 输出:1736141445.123456
print(datetime.fromtimestamp(ts))  # 还原,输出:2025-01-06 10:30:45.123456

time 模块简介

time 模块更底层:time.time() 返回时间戳,time.sleep() 暂停程序:

import time

print(time.time())   # 输出:1736141445.123456
time.sleep(2)        # 程序暂停 2 秒

小结

datetime 负责"看得懂的时间"(对象运算与格式化),time 负责秒数与延时。记住 strftime 输出、strptime 解析、timedelta 做运算,日期处理就不难了。

笔记加载中…