首页
学习
活动
专区
圈层
工具
发布

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

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

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的其他书籍:

感谢转发点赞的各位~

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OMcd9T0v0WKKDuiqFM2VAoXA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券