
在开发中,时间无处不在,无论是记录日志、安排日程,还是格式化创建时间,程序员总得和时间打交道。
Python 内置了 datetime 模块来处理常见的时间操作,简单易用又功能强大!
今天 Crossin 将带你快速上手 datetime,通过案例让你轻松掌握时间处理技巧。
1. 快速上手
什么是 datetime?
datetime 是 Python 的内置模块,无需额外安装,专为处理日期和时间设计。导入方式简单:
import datetime它包含几个核心类:
常见操作
a. 获取当前时间:
用 datetime.datetime.now() 获取当前日期和时间。
用 datetime.date.today() 获取当前日期。
now = datetime.datetime.now()
today = datetime.date.today()
print(now) # 输出参考:2025-08-01 20:00:00.123456
print(today) # 输出参考:2025-08-01b. 格式化时间:
strftime():将时间转为指定格式的字符串。
strptime():将字符串解析为 datetime 对象。
now = datetime.datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M")
print(formatted) # 输出参考:2025-08-01 20:00
date_str = "2025-08-01 20:00"
parsed = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M")
print(parsed) # 输出:2025-08-01 20:00:00c. 时间运算:
用 timedelta 进行时间加减。
from datetime import timedelta
today = datetime.date.today()
two_days_later = today + timedelta(days=2)
print(two_days_later) # 输出参考:2025-08-032. 应用实例
案例1:生成日程提醒
想知道距离下个周末还有几天?可以用 timedelta 和 datetime 轻松搞定!
from datetime import datetime, timedelta
today = datetime.today()
# 假设周日是周末
days_to_sunday = (6 - today.weekday()) % 7
next_sunday = today + timedelta(days=days_to_sunday)
print(f"距离周末还有 {days_to_sunday} 天!") # 输出参考:距离周末还有 4 天!案例2:格式化文章发布时间
要在文章页面显示发布时间?用 strftime 格式化:
from datetime import datetime
post_time = datetime.now()
formatted_time = post_time.strftime("%Y年%m月%d日 %H:%M")
print(f"发布时间:{formatted_time}") # 输出参考:发布时间:2025年08月01日 20:00案例3:计算程序运行时间
想知道代码跑了多久?用 datetime 计时:
from datetime import datetime
start = datetime.now()
# 模拟耗时操作
for _ in range(1000000):
pass
end = datetime.now()
duration = end - start
print(f"程序运行了 {duration.total_seconds()} 秒") # 输出参考:程序运行了 0.123456 秒3. 其他模块
zoneinfo:内置模块(Python 3.9+),处理时区转换。
from datetime import datetime
from zoneinfo import ZoneInfo
beijing_time = datetime.now(ZoneInfo("Asia/Shanghai"))
ny_time = beijing_time.astimezone(ZoneInfo("America/New_York"))
print(f"北京时间:{beijing_time.strftime('%H:%M')},纽约时间:{ny_time.strftime('%H:%M')}")
# 输出参考:北京时间:09:00,纽约时间:21:00time:提供时间戳和暂停功能。
import time
timestamp = time.time()
print(f"当前时间戳:{timestamp}") # 输出参考:1755938400.123456
time.sleep(1) # 暂停1秒
print("1秒后继续执行")calendar:生成日历、判断闰年等。
import calendar
is_leap = calendar.isleap(2024)
print(f"2024年是闰年?{is_leap}") # 输出:2024年是闰年?Truependulum:第三方库,API 更简洁,需安装(pip install pendulum)。
import pendulum
now = pendulum.now()
print(now.to_datetime_string()) # 输出参考:2025-08-01 20:00:004. 总结
datetime 模块是 Python 处理时间的得力助手,从获取当前时间到格式化输出,再到时间运算,都简单又实用。通过日程提醒、文章发布时间、程序计时等案例,相信你已经感受到它的魅力!搭配 zoneinfo、time、calendar 和 pendulum,时间处理更灵活。快动手试试,写个小程序计算距离你的生日还有几天吧!
还想了解 Python 的哪些功能,欢迎在评论区留言。
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
感谢转发和点赞的各位~
本文分享自 Crossin的编程教室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!