Python datetime 模块概述及应用场景
一、pythondatetime模块概述
python的datetime
模块是标准库中用于处理日期和时间的核心模块,提供了以下核心功能:
- 日期/时间对象化:将日期、时间、日期时间等抽象为对象,支持计算和比较。
- 格式化与解析:支持日期时间与字符串之间的双向转换。
- 时区处理:支持本地时间和带时区的时间计算(需搭配
pytz
等第三方库增强)。 - 时间运算:通过
timedelta
实现时间差计算,支持日期时间的加减操作。
二、datetime模块核心类解析
1.date
类:处理日期(年、月、日)
- 用途:处理不含时间的纯日期。
- 关键方法:
from datetime import date today = date.today() # 获取当前日期 custom_date = date(2023, 10, 1) # 创建指定日期 print(today.year, today.month, today.day) # 输出:2023 10 1
2.time
类:处理时间(时、分、秒、微秒)
- 用途:处理不含日期的纯时间。
- 示例:
from datetime import time t = time(14, 30, 15) # 14:30:15 print(t.hour, t.minute) # 输出:14 30
3.datetime
类:组合日期和时间
- 核心功能:同时处理日期和时间,支持时区(需配置)。
- 常用操作:
from datetime import datetime now = datetime.now() # 当前本地时间 utc_now = datetime.utcnow() # 当前utc时间 dt = datetime(2023, 10, 1, 9, 30) # 2023-10-01 09:30:00 # 时间戳转换 timestamp = dt.timestamp() # 转为unix时间戳 dt_from_ts = datetime.fromtimestamp(1633068600)
4.timedelta
类:时间间隔计算
- 用途:表示两个时间点之间的差值。
- 示例:
from datetime import datetime, timedelta now = datetime.now() future = now + timedelta(days=7, hours=3) # 7天3小时后 delta = future - now # 计算时间差 print(delta.days) # 输出:7
5.tzinfo
与时区处理
- 基础时区:python内置
timezone
类(需python 3.2+)。 - 第三方库:推荐使用
pytz
处理复杂时区。 - 示例:
from datetime import datetime, timezone import pytz # 本地时间转utc local_dt = datetime(2023, 10, 1, 10, 0) utc_dt = local_dt.astimezone(timezone.utc) # 使用pytz处理时区 tz_shanghai = pytz.timezone('asia/shanghai') dt_with_tz = tz_shanghai.localize(datetime(2023, 10, 1, 10, 0))
三、日期时间格式化与解析
1.strftime
:日期 → 字符串
dt = datetime(2023, 10, 1, 14, 30) formatted = dt.strftime("%y-%m-%d %h:%m:%s") # 输出:2023-10-01 14:30:00
2.strptime
:字符串 → 日期
date_str = "2023-10-01" dt = datetime.strptime(date_str, "%y-%m-%d") # 解析为datetime对象
3.常用格式符号
格式符号 | 含义 | 示例 |
---|---|---|
%y | 四位年份 | 2023 |
%m | 两位月份 | 10 |
%d | 两位日期 | 01 |
%h | 24小时制小时 | 14 |
%m | 分钟 | 30 |
%s | 秒 | 45 |
四、典型应用场景
倒计时计算:
end_date = datetime(2023, 12, 31) days_left = (end_date - datetime.now()).days
日志时间戳:
log_time = datetime.now().strftime("[%y-%m-%d %h:%m:%s]")
用户输入处理:
user_input = "2023-10-01" try: dt = datetime.strptime(user_input, "%y-%m-%d") except valueerror: print("日期格式错误!")
五、注意事项
- 时区敏感性:默认
datetime
对象是“naive”(无时区),处理跨时区需显式指定。 - 性能优化:频繁时间计算建议使用时间戳(
timestamp()
)存储。 - 闰年处理:
date
类自动处理闰年,如date(2024, 2, 29)
有效。
若您需要更高级的时间处理功能(如自然语言解析),可参考第三方库dateutil
或arrow
。
到此这篇关于python datetime 模块概述的文章就介绍到这了,更多相关python datetime 模块内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
推荐阅读
-
一文教你Python如何快速精准抓取网页数据
本文将使用requests和beautifulsoup这两个流行的库来实现。1.准备工作首先安装必要的库:pipinst...
-
使用Python实现IP地址和端口状态检测与监控
-
基于Python打造一个智能单词管理神器
-
Python实现微信自动锁定工具
-
使用Python创建一个功能完整的Windows风格计算器程序
python实现windows系统计算器程序(含高级功能)下面我将介绍如何使用python创建一个功能完整的windows风格计...
-
Python开发文字版随机事件游戏的项目实例
随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型。在这类游戏中,玩家必须应对随机发生的情况,这些情况可能会影响他们的资...
-
使用Pandas实现Excel中的数据透视表的项目实践
引言在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然excel提供了内置的数据透...
-
Pandas利用主表更新子表指定列小技巧
一、前言工作的小技巧,利用pandas读取主表和子表,利用主表的指定列,更新子表的指定列。案例:主表:uidname0...
-
Pandas中统计汇总可视化函数plot()的使用
-
Python中tensorflow的argmax()函数的使用小结
在tensorflow中,argmax()函数是一个非常重要的操作,它用于返回给定张量(tensor)沿指定轴的最大值的索引。这个...