news 2026/10/27 1:47:11

Python 日期处理必学技能:date.isoformat() 一招搞定标准日期格式转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 日期处理必学技能:date.isoformat() 一招搞定标准日期格式转换

Python date 类型 isoformat() 的用法:让日期格式转换变得简单

大家好,今天我们学习 Python 日期处理中一个非常实用的方法:

date.isoformat()

很多刚开始学习 Python 的同学,在处理日期时都会遇到类似问题:

“为什么我的日期对象不能直接保存到 JSON?”

“接口传递日期时,应该使用什么格式?”

“数据库里的日期为什么需要转换成字符串?”

这些问题的核心,就是日期对象和字符串之间的转换。

而isoformat()就是 Python 提供的一个标准解决方案。


一、什么是 date 类型?

在 Python 中,日期通常使用datetime模块中的date类型表示。

例如:

from datetime import date today = date.today() print(today)

输出:

2026-09-22

这里的today并不是普通字符串,而是一个date对象。

我们可以查看它的类型:

print(type(today))

结果:

<class 'datetime.date'>

也就是说:

2026-09-22

看起来像字符串,但实际上是一个日期对象。


二、什么是 isoformat()?

isoformat()的作用:

将日期对象转换成符合 ISO 8601 标准格式的字符串。

简单理解:

date 对象 → 标准日期字符串

例如:

from datetime import date today = date.today() result = today.isoformat() print(result)

输出:

2026-09-22

转换之后:

date对象: date(2026, 9, 22) ↓ 字符串: "2026-09-22"

三、为什么需要 isoformat()?

很多场景下,我们不能直接使用date对象。

例如:

1. JSON 数据传输

假设有一个用户信息:

from datetime import date user = { "name": "Tom", "birthday": date(2000, 5, 20) }

如果直接转换 JSON:

import json json.dumps(user)

会报错:

TypeError: Object of type date is not JSON serializable

原因:

JSON 不认识 Python 的 date 类型。


解决方法:

user = { "name": "Tom", "birthday": date(2000, 5, 20).isoformat() } print(json.dumps(user))

结果:

{ "name": "Tom", "birthday": "2000-05-20" }

这样接口就可以正常传递了。


四、isoformat() 的基本语法

语法非常简单:

date对象.isoformat()

例如:

from datetime import date d = date(2025, 1, 1) print(d.isoformat())

输出:

2025-01-01

没有参数:

isoformat()

即可。


五、isoformat() 和 str() 有什么区别?

很多新手会问:

既然:

str(date对象)

也能得到日期字符串。

为什么还需要:

date.isoformat()

我们来看:

from datetime import date d = date(2025, 8, 15) print(str(d)) print(d.isoformat())

输出:

2025-08-15 2025-08-15

看起来一样。

但是:

str()

属于通用字符串转换。

isoformat()

明确表示:

“我要按照 ISO 标准格式输出日期。”

在接口开发、数据交换中:

isoformat()

语义更加清晰。


六、isoformat() 在项目中的常见应用

1. API 接口返回日期

例如:

from datetime import date def get_user(): return { "name": "Alice", "register_date": date.today().isoformat() } print(get_user())

返回:

{ 'name': 'Alice', 'register_date': '2026-09-22' }

2. 数据库存储

数据库通常保存:

2026-09-22

而不是 Python 对象。

例如:

created_time = date.today().isoformat() save_database(created_time)

3. 日志记录

例如:

log_date = date.today().isoformat() print(f"系统运行日期:{log_date}")

输出:

系统运行日期:2026-09-22

七、isoformat() 和 fromisoformat() 配合使用

Python 不仅可以:

日期对象 → 字符串

也可以:

字符串 → 日期对象

例如:

from datetime import date text = "2026-09-22" d = date.fromisoformat(text) print(d)

输出:

2026-09-22

流程:

date对象 | | isoformat() ↓ "2026-09-22" 字符串 | | fromisoformat() ↓ date对象

这两个方法经常成对出现。


八、使用时注意事项

1. isoformat() 返回的是字符串

例如:

d = date.today() result = d.isoformat() print(type(result))

结果:

<class 'str'>

不要认为它还是日期对象。


2. 注意日期格式

isoformat 默认格式:

YYYY-MM-DD

例如:

2026-09-22

不是:

2026/09/22

也不是:

22-09-2026

3. 不适合自定义格式

如果需要:

2026年09月22日

应该使用:

strftime()

例如:

d.strftime("%Y年%m月%d日")

输出:

2026年09月22日

九、总结

今天我们学习了 Python 中:

date.isoformat()

它的核心作用:

将 Python 的 date 类型转换为符合 ISO 8601 标准的日期字符串。

记住一句话:

date 负责表示日期,isoformat() 负责让日期方便传输。

在实际开发中,它经常用于:

  • JSON 数据转换
  • API 接口开发
  • 数据库存储
  • 日志记录

虽然方法很简单,但它是 Python 日期处理中的基础技能,也是很多实际项目中每天都会使用的小工具。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 1:45:28

Java实战项目:助贷CRM客户管理系统(SpringBoot+MyBatis)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:36:14

CAPL编程:变量 - 变量的声明与初始化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:33:57

【机械制图与CAD实战(二十九)】弹簧的表示方法

弹簧是用途极广的零件&#xff0c;可以用于机械的运动控制、减震、夹紧、测力和储能等。 l弹簧的种类繁多&#xff0c;有螺旋弹簧、蝶形弹簧、平面蜗簧、板弹簧等。螺旋弹簧螺旋弹簧又有压缩螺旋弹簧、拉伸螺旋弹簧、扭转螺旋弹簧。1、圆柱螺旋压缩弹簧的各部分名称及尺寸关系…

作者头像 李华