菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown 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 for 循环 Python while 循环
(追記) (追記ここまで)

Python datetime 模块

Python 的 datetime 模块是用于处理日期和时间的标准库模块。它提供了多种类和函数,可以帮助我们轻松地处理日期、时间、时间差等操作。无论是获取当前时间、格式化日期,还是计算时间差,datetime 模块都能胜任。

datetime 模块的核心类

datetime 模块中包含了以下几个核心类:

  • date 类 - date 类用于表示日期,包含年、月、日三个属性。

  • time 类 - time 类用于表示时间,包含时、分、秒、微秒等属性。

  • datetime 类 -datetime 类是 datetime 的结合体,可以同时表示日期和时间。

  • timedelta 类 - timedelta 类用于表示时间差,可以用于日期和时间的加减操作。


使用 datetime 模块

获取当前日期和时间

我们可以使用 datetime 类的 now() 方法来获取当前的日期和时间。

实例

from datetime import datetime

# 获取当前日期和时间
now = datetime.now()
print("当前时间:", now)

输出示例:

当前时间: 2025年04月22日 14:30:45.123456

创建特定的日期和时间

我们可以通过 datetime 类的构造函数来创建特定的日期和时间。

实例

from datetime import datetime

# 创建特定的日期和时间
specific_time = datetime(2025, 4, 22, 15, 30, 0)
print("特定时间:", specific_time)

输出示例:

特定时间: 2025年04月22日 15:30:00

格式化日期和时间

datetime 对象可以通过 strftime() 方法格式化为字符串。

实例

from datetime import datetime

# 获取当前时间
now = datetime.now()

# 格式化输出
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化时间:", formatted_time)

输出示例:

格式化时间: 2025年04月22日 14:30:45

计算时间差

timedelta 类可以用于计算两个日期或时间之间的差值。

实例

from datetime import datetime, timedelta

# 获取当前时间
now = datetime.now()

# 计算 10 天后的时间
future_time = now + timedelta(days=10)
print("10 天后的时间:", future_time)

输出示例:

10 天后的时间: 2025年05月02日 14:30:45.123456

常见应用场景

计算两个日期之间的天数

实例

from datetime import date

# 创建两个日期
date1 = date(2025, 4, 22)
date2 = date(2025, 5, 1)

# 计算天数差
delta = date2 - date1
print("两个日期之间的天数差:", delta.days)

输出示例:

两个日期之间的天数差: 9

处理时区

datetime 模块本身不直接支持时区操作,但可以通过 pytz 库来处理时区。

实例

from datetime import datetime
import pytz

# 获取当前时间并设置时区
now = datetime.now(pytz.timezone('Asia/Shanghai'))
print("上海当前时间:", now)

输出示例:

上海当前时间: 2025年04月22日 14:30:45.123456+08:00

常用类、方法及属性

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.year2023
date.month 月份(1-12,只读) d.month5
date.day 日(1-31,只读) d.day15
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.hour14
time.minute 分钟(0-59,只读) t.minute30
time.second 秒(0-59,只读) t.second0
time.microsecond 微秒(0-999999,只读) t.microsecond0
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.year2023
datetime.strftime(format) 自定义格式化输出 dt.strftime("%Y-%m-%d %H:%M")"2023-05-15 14:30"

5. timedelta 对象常用属性

属性 说明 示例
days 天数(可正可负) delta.days5
seconds 秒数(0-86399) delta.seconds3600(1小时)
microseconds 微秒数(0-999999) delta.microseconds0

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

注意事项

  1. 不可变性:所有 datetime 对象不可变,操作会返回新对象。

  2. 时区处理:原生 datetime 无时区支持,需用 pytz 或 Python 3.9+ 的 zoneinfo

  3. 性能:频繁创建对象可能影响性能,考虑重用或缓存。

  4. 边界检查:非法日期(如 date(2023, 2, 30))会触发 ValueError

AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /