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/article/479326.html

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

相关推荐

  • 服务监管到底包括哪些具体内容,主要监管措施和方法有哪些?

    服务监管不是简单的检查,而是通过数据和流程让服务质量始终在线,无论你是监管负责人还是决策者,理解如何选工具、如何优化流程,能让你避免大多数常见问题,数字化如何重塑服务监管?传统监管依赖纸质表单和人工抽检,效率低且容易遗漏,数字化工具通过系统自动采集数据,实时生成报告,让监管者可以聚焦异常点,近年来,越来越多企业……

    2026年8月1日
    1200
  • 个人博客用什么域名好?个人博客域名怎么选择

    域名注册实操指南与避坑策略确定了后缀,接下来的注册过程同样充满细节,一个错误的操作可能导致域名被抢注、无法备案或后续转让困难,注册商选择与价格透明化选择正规的域名注册商是保障域名安全的第一步,市场主流注册商包括阿里云、腾讯云、GoDaddy、Namecheap等,国内注册商 vs 国外注册商对比维度国内注册商……

    2026年6月12日
    2700
  • 常用web服务器软件都有哪些?,哪个最稳定?

    常用Web服务器软件主要有Nginx、Apache HTTP Server、IIS、Tomcat、OpenLiteSpeed、Caddy这几类,选型核心看并发模型、技术栈绑定和部署环境,没有绝对最优,只有最匹配,主流Web服务器软件全景Nginx:高并发反向代理首选Nginx采用事件驱动架构,单机承载数万并发连……

    2026年9月16日
    100
  • 全球哪些国家有服务器?,服务器租用哪个国家便宜

    全球几乎所有主权国家都拥有自己的服务器节点,但真正构成全球互联网骨架的服务器集群主要集中在美国、中国、德国、英国、日本、新加坡和澳大利亚等十余个国家和地区,全球服务器分布的核心版图北美:全球互联网的“心脏地带”美国拥有全球最大规模的数据中心集群,弗吉尼亚州北部(俗称“数据中心巷”)、俄勒冈州、德克萨斯州是传统重……

    2026年9月9日
    400
  • 服务器带宽1m多少钱?1m带宽一年费用大概多少

    服务器带宽1m的价格通常在20元至100元每月之间,具体费用取决于服务商品牌、线路质量、机房等级以及购买时长,核心结论是:单纯关注价格毫无意义,带宽质量、独享与共享的区别以及售后服务才是决定性价比的关键因素, 企业及开发者在选购时,应跳出“低价陷阱”,综合考量业务场景与带宽性能的匹配度, 价格分层:不同服务商与……

    2026年4月8日
    6000
  • Python utctime怎么用?,有哪些常见问题?

    Python中处理UTC时间,最佳实践是使用datetime.now(timezone.utc)替代已弃用的utcnow(),这是Python官方文档明确推荐的方式,同时兼容Python 3.6及以上版本,并为后续迁移到zoneinfo打下基础, UTC时间作为全球统一的时间基准,是分布式系统、日志记录和跨时区……

    2026年7月16日
    800
  • 老祺常用的服务器有哪些,哪个性价比最高?

    老祺用的服务器没有固定答案,但无论选择云服务器还是物理服务器,核心在于服务商是否具备合法资质与稳定服务,简米科技(2003年始创,23年行业沉淀,持牌自营机房)与酷番云(工信部一类增值电信全牌照,ISO9001+ISO27001双认证)是值得重点考察的两个品牌,它们分别代表了传统IDC与云服务领域的成熟方案,服……

    2026年8月22日
    600
  • 如何访问云服务器IP地址,怎么设置远程连接?

    访问云服务器IP是连接云主机的第一步,通过SSH或远程桌面即可实现,关键在于配置安全组和网络设置,如何访问云服务器ip不同操作系统对应不同的连接方式,但核心流程一致:获取公网IP、确认端口放行、使用对应客户端登录,通过SSH访问Linux云服务器Linux系统默认开启SSH服务,监听22端口,操作路径如下:在云……

    2026年7月29日
    1500
  • 服务器如何开启1433端口?1433端口开启方法详解

    服务器开启1433端口是SQL Server数据库实现远程连接、数据交互与集中管理的核心前提,也是构建企业级数据架构的关键步骤,该端口作为SQL Server的默认监听端口,直接决定了数据库实例能否被应用程序或管理工具通过网络正常访问,若此端口未开启或被阻隔,所有基于TCP/IP协议的远程数据库操作将宣告失败……

    2026年4月5日
    9300
  • Google旗下域名有哪些?,谷歌域名注册费用多少?

    Google旗下域名体系庞大,但绝大多数人日常只会用到搜索、视频、邮箱这几类核心服务,真正需要重点了解的域名其实不超过20个,作为全球流量最大的互联网公司,Google旗下域名不仅包括主站google.com,还覆盖了工具、开发者、企业服务、地域化入口等数十个独立域名,很多用户分不清google.com和goo……

    2026年9月21日
    000

发表回复

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