python教程
- Python教程
- Python 简介
- Python3 下载安装
- python基础语法
- Python基本数据类型
- Python数据类型转换
- Python解释器
- Python 注释
- Python运算符
- Python数字(Number)
- Python字符串
- Python列表
- Python元组
- Python3 字典
- Python集合
- Python条件控制
- Python循环语句
- Python编程第一步
- Python 推导式
- Python3 迭代器与生成器
- Python函数
- Python lambda(匿名函数)
- Python 装饰器
- Python数据结构
- Python3 模块
- Python __name__ 与 __main__
- Python输入和输出
- Python3 File(文件) 方法
- Python3 OS 文件/目录方法
- Python3 错误和异常
- Python3 面向对象
- Python3 命名空间和作用域
- Python3 标准库概览
- -----高级教程----------
- Python3 正则表达式
- Python CGI编程
- Python MySQL - mysql-connector 驱动
- Python3 MySQL 数据库连接 - PyMySQL 驱动
- Python3 网络编程
- Python3 SMTP发送邮件
- Python3 多线程
- Python3 XML 解析
- Python3 JSON 数据解析
- Python3 日期和时间
- Python MongoDB
- **Python Mongodb 插入文档
- **Python Mongodb 查询文档
- **Python Mongodb 修改文档
- **Python Mongodb 排序
- **Python Mongodb 删除数据
- Python urllib
- Python uWSGI 安装配置
- Python3 pip
- Anaconda 教程
- Python3 operator 模块
- Python math 模块
- Python requests 模块
- Python random 模块
- Python AI 绘画
- Python statistics 模块
- Python hashlib 模块
- Python 量化
- Python pyecharts 模块
- Python selenium 库
- Python 爬虫 - BeautifulSoup
- Python Scrapy 库
- Python Markdown 生成 HTML
- Python sys 模块
- Python Pickle 模块
- Python subprocess 模块
- Python queue 模块
- Python StringIO 模块
- Python logging 模块
- Python datetime 模块
- Python re 模块
- Python csv 模块
- Python threading 模块
- Python asyncio 模块
- Python PyQt
- **Python PyQt 常用组件
- **Python PyQt 布局管理
- **Python PyQt 信号与槽机制
Python 的 datetime
模块是用于处理日期和时间的标准库模块。它提供了多种类和函数,可以帮助我们轻松地处理日期、时间、时间差等操作。无论是获取当前时间、格式化日期,还是计算时间差,datetime
模块都能胜任。
datetime 模块的核心类
datetime
模块中包含了以下几个核心类:
date
类 -date
类用于表示日期,包含年、月、日三个属性。time
类 -time
类用于表示时间,包含时、分、秒、微秒等属性。datetime
类 -datetime
类是date
和time
的结合体,可以同时表示日期和时间。timedelta
类 -timedelta
类用于表示时间差,可以用于日期和时间的加减操作。
使用 datetime 模块
获取当前日期和时间
我们可以使用 datetime
类的 now()
方法来获取当前的日期和时间。
实例
from datetime import datetime # 获取当前日期和时间 now = datetime.now() print("当前时间:", now)
输出示例:
创建特定的日期和时间
我们可以通过 datetime
类的构造函数来创建特定的日期和时间。
实例
from datetime import datetime # 创建特定的日期和时间 specific_time = datetime(2025, 4, 22, 15, 30, 0) print("特定时间:", specific_time)
输出示例:
格式化日期和时间
datetime
对象可以通过 strftime()
方法格式化为字符串。
实例
from datetime import datetime # 获取当前时间 now = datetime.now() # 格式化输出 formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") print("格式化时间:", formatted_time)
输出示例:
计算时间差
timedelta
类可以用于计算两个日期或时间之间的差值。
实例
from datetime import datetime, timedelta # 获取当前时间 now = datetime.now() # 计算 10 天后的时间 future_time = now + timedelta(days=10) print("10 天后的时间:", future_time)
输出示例:
常见应用场景
计算两个日期之间的天数
实例
from datetime import date # 创建两个日期 date1 = date(2025, 4, 22) date2 = date(2025, 5, 1) # 计算天数差 delta = date2 - date1 print("两个日期之间的天数差:", delta.days)
输出示例:
处理时区
datetime
模块本身不直接支持时区操作,但可以通过 pytz
库来处理时区。
实例
from datetime import datetime import pytz # 获取当前时间并设置时区 now = datetime.now(pytz.timezone('Asia/Shanghai')) print("上海当前时间:", now)
输出示例:
常用类、方法及属性
1. 核心类
类 | 说明 | 示例 |
---|---|---|
datetime.date | 日期类(年、月、日) | date(2023, 5, 15) |
datetime.time | 时间类(时、分、秒、微秒) | time(14, 30, 0) |
datetime.datetime | 日期时间类(包含日期和时间) | datetime(2023, 5, 15, 14, 30) |
datetime.timedelta | 时间间隔类(用于日期/时间计算) | timedelta(days=5) |
datetime.tzinfo | 时区信息基类(需子类化实现) | 自定义时区类 |
2. date
对象常用方法/属性
方法/属性 | 说明 | 示例 |
---|---|---|
date.today() | 返回当前本地日期 | date.today() → date(2023, 5, 15) |
date.fromisoformat(str) | 从 YYYY-MM-DD 字符串解析日期 | date.fromisoformat("2023-05-15") |
date.year | 年份(只读) | d.year → 2023 |
date.month | 月份(1-12,只读) | d.month → 5 |
date.day | 日(1-31,只读) | d.day → 15 |
date.weekday() | 返回星期几(0=周一,6=周日) | d.weekday() → 0 |
date.isoformat() | 返回 YYYY-MM-DD 格式字符串 | d.isoformat() → "2023-05-15" |
date.strftime(format) | 自定义格式化输出 | d.strftime("%Y/%m/%d") → "2023/05/15" |
3. time
对象常用方法/属性
方法/属性 | 说明 | 示例 |
---|---|---|
time.hour | 小时(0-23,只读) | t.hour → 14 |
time.minute | 分钟(0-59,只读) | t.minute → 30 |
time.second | 秒(0-59,只读) | t.second → 0 |
time.microsecond | 微秒(0-999999,只读) | t.microsecond → 0 |
time.isoformat() | 返回 HH:MM:SS.mmmmmm 格式字符串 | t.isoformat() → "14:30:00" |
time.strftime(format) | 自定义格式化输出 | t.strftime("%H:%M") → "14:30" |
4. datetime
对象常用方法/属性
方法/属性 | 说明 | 示例 |
---|---|---|
datetime.now() | 返回当前本地日期时间 | datetime.now() → datetime(2023, 5, 15, 14, 30, 0) |
datetime.utcnow() | 返回当前 UTC 日期时间 | datetime.utcnow() |
datetime.fromtimestamp(ts) | 从时间戳创建 datetime 对象 | datetime.fromtimestamp(1684146600) |
datetime.timestamp() | 返回时间戳(浮点数秒) | dt.timestamp() → 1684146600.0 |
datetime.date() | 提取日期部分 | dt.date() → date(2023, 5, 15) |
datetime.time() | 提取时间部分 | dt.time() → time(14, 30) |
datetime.year | 年份(同 date ) | dt.year → 2023 |
datetime.strftime(format) | 自定义格式化输出 | dt.strftime("%Y-%m-%d %H:%M") → "2023-05-15 14:30" |
5. timedelta
对象常用属性
属性 | 说明 | 示例 |
---|---|---|
days | 天数(可正可负) | delta.days → 5 |
seconds | 秒数(0-86399) | delta.seconds → 3600 (1小时) |
microseconds | 微秒数(0-999999) | delta.microseconds → 0 |
6. 常用格式化符号(strftime
)
符号 | 说明 | 示例输出 |
---|---|---|
%Y | 四位年份 | 2023 |
%m | 两位月份(01-12) | 05 |
%d | 两位日(01-31) | 15 |
%H | 24小时制小时(00-23) | 14 |
%M | 分钟(00-59) | 30 |
%S | 秒(00-59) | 00 |
%A | 完整星期名 | Monday |
%a | 缩写星期名 | Mon |
%B | 完整月份名 | May |
%b | 缩写月份名 | May |
实例
1. 计算日期差
实例
from datetime import date, timedelta d1 = date(2023, 5, 15) d2 = date(2023, 6, 1) delta = d2 - d1 # 返回 timedelta 对象 print(delta.days) # 输出: 17
2. 时间加减
实例
from datetime import datetime, timedelta now = datetime.now() future = now + timedelta(days=3, hours=2) print(future.strftime("%Y-%m-%d %H:%M"))
3. 时区转换(需安装 pytz)
实例
from datetime import datetime import pytz utc_time = datetime.utcnow().replace(tzinfo=pytz.utc) beijing_time = utc_time.astimezone(pytz.timezone("Asia/Shanghai")) print(beijing_time)
4. 解析字符串
实例
from datetime import datetime dt = datetime.strptime("2023-05-15 14:30", "%Y-%m-%d %H:%M") print(dt.year) # 输出: 2023
注意事项
不可变性:所有
datetime
对象不可变,操作会返回新对象。时区处理:原生
datetime
无时区支持,需用pytz
或 Python 3.9+ 的zoneinfo
。性能:频繁创建对象可能影响性能,考虑重用或缓存。
边界检查:非法日期(如
date(2023, 2, 30)
)会触发ValueError
。
© 2025 Copyright: kuaikuaixuan.com
京ICP备14015652号-3
网址导航