在开发中,时间无处不在,无论是记录日志、安排日程,还是格式化创建时间,程序员总得和时间打交道。
Python 内置了 datetime 模块来处理常见的时间操作,简单易用又功能强大!
今天 Crossin 将带你快速上手 datetime,通过案例让你轻松掌握时间处理技巧。
1. 快速上手
什么是 datetime?
datetime 是 Python 的内置模块,无需额外安装,专为处理日期和时间设计。导入方式简单:
import datetime
它包含几个核心类:
date:处理年、月、日,如“2025-07-30”。
datetime:结合日期和时间,如“2025-07-30 20:00”。
timedelta:表示时间间隔,用于计算时间差或加减时间。
常见操作
a. 获取当前时间:
用 datetime.datetime.now() 获取当前日期和时间。
用 datetime.date.today() 获取当前日期。
now = datetime.datetime.now()today = datetime.date.today()print(now) # 输出参考:2025-08-01 20:00:00.123456print(today) # 输出参考:2025-08-01
b. 格式化时间:
strftime():将时间转为指定格式的字符串。
strptime():将字符串解析为 datetime 对象。
now = datetime.datetime.now()formatted = now.strftime("%Y-%m-%d %H:%M")print(formatted) # 输出参考:2025-08-01 20:00date_str = "2025-08-01 20:00"parsed = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M")print(parsed) # 输出:2025-08-01 20:00:00
c. 时间运算:
用 timedelta 进行时间加减。
from datetime import timedeltatoday = datetime.date.today()two_days_later = today + timedelta(days=2)print(two_days_later) # 输出参考:2025-08-03
2. 应用实例
案例1:生成日程提醒
想知道距离下个周末还有几天?可以用 timedelta 和 datetime 轻松搞定!
from datetime import datetime, timedeltatoday = datetime.today()# 假设周日是周末days_to_sunday = (6 - today.weekday()) % 7next_sunday = today + timedelta(days=days_to_sunday)print(f"距离周末还有 {days_to_sunday} 天!") # 输出参考:距离周末还有 4 天!
案例2:格式化文章发布时间
要在文章页面显示发布时间?用 strftime 格式化:
from datetime import datetimepost_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 datetimestart = datetime.now()# 模拟耗时操作for _ in range(1000000): passend = datetime.now()duration = end - startprint(f"程序运行了 {duration.total_seconds()} 秒") # 输出参考:程序运行了 0.123456 秒
3. 其他模块
zoneinfo:内置模块(Python 3.9+),处理时区转换。
from datetime import datetimefrom zoneinfo import ZoneInfobeijing_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:00
time:提供时间戳和暂停功能。
import timetimestamp = time.time()print(f"当前时间戳:{timestamp}") # 输出参考:1755938400.123456time.sleep(1) # 暂停1秒print("1秒后继续执行")
calendar:生成日历、判断闰年等。
import calendaris_leap = calendar.isleap(2024)print(f"2024年是闰年?{is_leap}") # 输出:2024年是闰年?True
pendulum:第三方库,API 更简洁,需安装(pip install pendulum)。
import pendulumnow = pendulum.now()print(now.to_datetime_string()) # 输出参考:2025-08-01 20:00:00
4. 总结
datetime 模块是 Python 处理时间的得力助手,从获取当前时间到格式化输出,再到时间运算,都简单又实用。通过日程提醒、文章发布时间、程序计时等案例,相信你已经感受到它的魅力!搭配 zoneinfo、time、calendar 和 pendulum,时间处理更灵活。快动手试试,写个小程序计算距离你的生日还有几天吧!
还想了解 Python 的哪些功能,欢迎在评论区留言。
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:
感谢转发和点赞的各位~