Python中Dateformatter怎么用?python日期格式化常用方法

在 Python 中,datetime 模块提供了强大的日期和时间处理功能,strftime() 和 strptime() 是用于格式化日期字符串和解析日期字符串的核心方法。

以下是关于 Python 中日期格式化的详细指南:

盘点查看Python版本信息的7种方式
加载中
盘点查看Python版本信息的7种方式

基本用法

1 将 datetime 对象格式化为字符串 (strftime)

strftime(format) 将 datetime 对象转换为指定格式的字符串。

from datetime import datetime
# 获取当前时间
now = datetime.now()
# 格式化日期字符串
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 输出示例: 2026-10-25 14:30:45
# 其他常见格式
print(now.strftime("%Y年%m月%d日"))       # 2026年10月25日
print(now.strftime("%A, %B %d, %Y"))     # Wednesday, October 25, 2026
print(now.strftime("%Y-%m-%d"))          # 2026-10-25
print(now.strftime("%H:%M"))             # 14:30

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

strptime(date_string, format) 将符合特定格式的字符串解析为 datetime 对象。

from datetime import datetime
# 日期字符串
date_string = "2026-10-25 14:30:45"
# 解析为 datetime 对象
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_date)       # 2026-10-25 14:30:45
print(type(parsed_date)) # <class 'datetime.datetime'>

常用格式代码表

Python中Dateformatter怎么用?python日期格式化常用方法

格式代码 说明 示例
%Y 四位年份 2026
%y 两位年份 23
%m 月份(零填充) 01-12
%B 月份全称 January, October
%b / %h 月份缩写 Jan, Oct
%d 日期(零填充) 01-31
%A 星期全称 Monday, Wednesday
%a 星期缩写 Mon, Wed
%H 24小时制小时 00-23
%I 12小时制小时 01-12
%M 分钟 00-59
%S 秒 00-59
%p AM/PM AM, PM
%f 微秒 000000-999999
%Z 时区名称 UTC, CST
%z 时区偏移 +0800, -0500
%j 一年中的第几天 001-366
%U / %W 一年中的第几周 00-53

常见应用场景

Python中Dateformatter怎么用?python日期格式化常用方法

1 获取当前日期并格式化

from datetime import datetime
today = datetime.now()
# ISO 8601 格式
iso_format = today.isoformat()
print(iso_format)  # 2026-10-25T14:30:45.123456
# 自定义格式
custom_format = today.strftime("%Y-%m-%d")
print(custom_format)  # 2026-10-25

2 解析不同格式的日期字符串

from datetime import datetime
# 解析带时区的日期
date_str1 = "2026-10-25 14:30:45 +08:00"
dt1 = datetime.strptime(date_str1, "%Y-%m-%d %H:%M:%S %z")
print(dt1)
# 解析中文日期
date_str2 = "2026年10月25日"
dt2 = datetime.strptime(date_str2, "%Y年%m月%d日")
print(dt2)
# 解析英文日期
date_str3 = "October 25, 2026"
dt3 = datetime.strptime(date_str3, "%B %d, %Y")
print(dt3)

3 日期计算与格式化结合

from datetime import datetime, timedelta
# 当前时间
now = datetime.now()
# 昨天
yesterday = now - timedelta(days=1)
print(yesterday.strftime("%Y-%m-%d"))
# 明天
tomorrow = now + timedelta(days=1)
print(tomorrow.strftime("%Y-%m-%d"))
# 一周前
last_week = now - timedelta(weeks=1)
print(last_week.strftime("%Y-%m-%d %A"))

使用 dateutil 库处理复杂日期格式

对于非标准格式的日期,可以使用 python-dateutil 库:

pip install python-dateutil
from dateutil import parser
# 自动识别多种日期格式
date1 = parser.parse("2026-10-25")
date2 = parser.parse("October 25, 2026")
date3 = parser.parse("25/10/2026")  # 注意:这可能因区域设置而异
print(date1)
print(date2)
print(date3)

Python中Dateformatter怎么用?python日期格式化常用方法

注意事项

  1. 时区处理:datetime 对象可以是 naive(无时区)或 aware(有时区),建议使用 pytz 或 zoneinfo(Python 3.9+)处理时区。
  2. 异常处理:strptime() 在格式不匹配时会抛出 ValueError,建议添加异常处理。
  3. 性能考虑:strptime() 和 strftime() 是纯 Python 实现,对于大量数据处理,考虑使用 pandas 或其他高性能库。
from datetime import datetime
try:
    dt = datetime.strptime("invalid-date", "%Y-%m-%d")
except ValueError as e:
    print(f"日期解析错误: {e}")

Python 3.7+ 的 datetime.fromisoformat()

对于 ISO 8601 格式的字符串,可以使用更简洁的方法:

from datetime import datetime
# 解析 ISO 格式
dt = datetime.fromisoformat("2026-10-25T14:30:45")
print(dt)
# 格式化回 ISO 格式
formatted = dt.isoformat()
print(formatted)

这些方法涵盖了 Python 中日期格式化的主要使用场景,根据你的具体需求选择合适的格式代码和方法即可。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/python%e4%b8%addateformatter%e6%80%8e%e4%b9%88%e7%94%a8%ef%bc%9fpython%e6%97%a5%e6%9c%9f%e6%a0%bc%e5%bc%8f%e5%8c%96%e5%b8%b8%e7%94%a8%e6%96%b9%e6%b3%95/

赞 (0)
python soupparser怎么用?python解析html标签提取数据
上一篇 2026年7月10日 09:21
H1Z1私人服务器怎么进?H1Z1私人服务器推荐
下一篇 2026年7月10日 09:21

相关推荐

  • Python Tetromino怎么实现?python俄罗斯方块代码

    Python Tetromino (俄罗斯方块)下面是一个完整的、可运行的 Python Tetromino(俄罗斯方块)实现,使用 pygame 库,安装依赖pip install pygame完整代码import pygameimport randomimport sys# 初始化 pygamepygame……

    2026年7月12日
    9800
  • 赛尔号有哪些服务器,哪个大区最值得推荐?

    赛尔号的服务器主要分为官方服务器、平台渠道服务器和互通服务器三大类型,其中官方服务器是绝对核心,承载着绝大多数玩家的游戏数据与活动进程,赛尔号服务器体系的基本逻辑赛尔号作为一款运营多年的网页游戏,其服务器架构并不像单机游戏那样简单,玩家登录游戏时会发现需要选择“区服”,这个区服就是服务器实体在游戏层面的映射,每……

    2026年9月15日
    200
  • 服务器显示密码不正确怎么办,远程桌面登录失败怎么解决?

    遇到服务器显示密码不正确的提示时,大多数用户的第一反应是反复尝试输入,但这往往无济于事,核心结论在于:这通常不是单纯的记忆偏差,而是由输入法差异、协议配置冲突、账户安全策略限制或服务端认证机制故障导致的复合型问题,解决这一问题需要从客户端输入环境、连接协议配置、服务端账户状态三个维度进行系统性排查,通过排除法定……

    2026年2月21日
    23400
  • 服务器防御攻击常用方法有哪些?,怎么配置?

    服务器防御攻击没有万能药,但可以用分层防御将风险降到最低:网络层用DDoS高防清洗,系统层及时打补丁并禁用多余服务,应用层通过WAF过滤恶意请求,再配合入侵检测系统实现主动防御,服务器防御攻击方案对比:你适合哪一种?不同规模的业务需要不同的防御资源,常见方案包括硬件防火墙、云WAF和CDN+清洗服务,三者各有侧……

    2026年8月6日
    600
  • 哪些人会用云服务器呢

    云服务器早已突破技术圈的边界,成为个人站长、中小企业、电商卖家、内容创作者、学生乃至游戏玩家都能用上的数字基础设施,无论你是想搭建个人博客、部署企业系统,还是运行科研实验,云服务器都能提供灵活、可靠的解决方案,个人开发者与站长:轻量部署,按需付费云服务器最吸引个人用户的地方在于零硬件投入,一台实例可以同时充当W……

    2026年8月22日
    200
  • 个人免费对象存储真的免费吗?有哪些稳定好用的免费云存储推荐

    个人免费对象存储是零成本备份照片、部署静态网站及同步文档的最佳方案,主流厂商通过“基础额度永久免费+阶梯计费”模式,让用户在轻量级使用场景下无需付费即可享受企业级存储体验,在数字化时代,数据资产的价值日益凸显,无论是记录生活的照片、重要的工作文档,还是个人开发的静态博客,都需要一个稳定、安全且经济的存储空间,传……

    2026年6月14日
    4000
  • 有哪些免费的app服务器软件?,哪个好用

    免费app服务器软件确实存在,而且选择相当丰富,关键看你处于开发测试还是正式上线阶段,对于个人开发者、初创团队和学生群体,本地开发环境、开源私有部署方案以及头部云厂商的免费额度,构成了三条最主流的免费路径,下面我直接拆解这些方案的具体玩法、适用场景和坑点,先搞清楚你的App需要什么类型的“服务器”很多人一上来就……

    2026年8月23日
    1000
  • Win10关闭哪些服务器最安全,长期运行有什么影响?

    Win10系统中值得关闭的服务主要有SysMain(原Superfetch)、Windows Search、Print Spooler、Connected User Experiences and Telemetry、Windows Error Reporting、Diagnostic Tracking Ser……

    2026年8月27日
    800
  • 小服务器厂家怎么选才靠谱,哪家性价比高?

    选小服务器厂家,先看资质牌照是否齐全、机房是否自营、售后能否秒响应,只要抓住这三条硬标准,踩坑概率就能降低八成以上,小服务器厂家靠不靠谱,先看这三张底牌小服务器厂家市场鱼龙混杂,不少团队租个几台机器就敢出来接单,判断一家服务商是否靠谱,不是看官网做得漂不漂亮,也不是看销售嘴皮子多利索,而是看实打实的资质与资源底……

    2026年9月21日
    100
  • 服务器怎么修改订单?服务器修改订单操作步骤详解

    服务器修改订单的本质,是对数据库中数据记录的精准更新操作,核心在于通过安全、可追溯的方式,利用SQL指令或API接口,将订单状态、金额或详情字段从旧值变更为新值,同时确保数据的一致性与完整性,这一过程并非简单的“删除重写”,而是涉及事务管理、权限控制及日志审计的复杂技术流程,直接操作数据库是修改订单最快但风险最……

    2026年3月21日
    9600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注