首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >轻松搞定时间:Python datetime 实用指南

轻松搞定时间:Python datetime 实用指南

作者头像
Crossin先生
发布2026-03-11 21:56:54
发布2026-03-11 21:56:54
200
举报

在开发中,时间无处不在,无论是记录日志、安排日程,还是格式化创建时间,程序员总得和时间打交道。

Python 内置了 datetime 模块来处理常见的时间操作,简单易用又功能强大!

今天 Crossin 将带你快速上手 datetime,通过案例让你轻松掌握时间处理技巧。

1. 快速上手

什么是 datetime?

datetime 是 Python 的内置模块,无需额外安装,专为处理日期和时间设计。导入方式简单:

代码语言:javascript
复制
import datetime

它包含几个核心类:

  • date:处理年、月、日,如“2025-07-30”。
  • datetime:结合日期和时间,如“2025-07-30 20:00”。
  • timedelta:表示时间间隔,用于计算时间差或加减时间。

常见操作

a. 获取当前时间:

用 datetime.datetime.now() 获取当前日期和时间。

用 datetime.date.today() 获取当前日期。

代码语言:javascript
复制
now = datetime.datetime.now()
today = datetime.date.today()
print(now)  # 输出参考:2025-08-01 20:00:00.123456
print(today)  # 输出参考:2025-08-01

b. 格式化时间:

strftime():将时间转为指定格式的字符串。

strptime():将字符串解析为 datetime 对象。

代码语言:javascript
复制
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:00

c. 时间运算:

用 timedelta 进行时间加减。

代码语言:javascript
复制
from datetime import timedelta
today = datetime.date.today()
two_days_later = today + timedelta(days=2)
print(two_days_later)  # 输出参考:2025-08-03

2. 应用实例

案例1:生成日程提醒

想知道距离下个周末还有几天?可以用 timedelta 和 datetime 轻松搞定!

代码语言:javascript
复制
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 格式化:

代码语言:javascript
复制
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 计时:

代码语言:javascript
复制
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+),处理时区转换。

代码语言:javascript
复制
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:00

time:提供时间戳和暂停功能。

代码语言:javascript
复制
import time
timestamp = time.time()
print(f"当前时间戳:{timestamp}")  # 输出参考:1755938400.123456
time.sleep(1)  # 暂停1秒
print("1秒后继续执行")

calendar:生成日历、判断闰年等。

代码语言:javascript
复制
import calendar
is_leap = calendar.isleap(2024)
print(f"2024年是闰年?{is_leap}")  # 输出:2024年是闰年?True

pendulum:第三方库,API 更简洁,需安装(pip install pendulum)。

代码语言:javascript
复制
import pendulum
now = pendulum.now()
print(now.to_datetime_string())  # 输出参考:2025-08-01 20:00:00

4. 总结

datetime 模块是 Python 处理时间的得力助手,从获取当前时间到格式化输出,再到时间运算,都简单又实用。通过日程提醒、文章发布时间、程序计时等案例,相信你已经感受到它的魅力!搭配 zoneinfo、time、calendar 和 pendulum,时间处理更灵活。快动手试试,写个小程序计算距离你的生日还有几天吧!

还想了解 Python 的哪些功能,欢迎在评论区留言。

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~


感谢转发点赞的各位~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档