You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何datetime对象被转换为字符串?代码实例解析

问题解答

是的,正是因为调用了isoformat()方法,导致created_at变成了字符串类型。

原因说明

datetime.now()本身返回的是datetime对象,但isoformat()是datetime类的内置方法,作用是将datetime对象转换为符合ISO 8601标准的字符串(例如2024-05-20T14:30:00.123456),所以把该方法的返回值赋值给created_at后,属性类型自然变为字符串。

解决方案

若要让created_at保持datetime对象类型,直接去掉isoformat()调用即可:

from datetime import datetime
from uuid import uuid4

class Model:
    def __init__(self, *args, **kwargs):
        """Instantiation Method"""
        if not kwargs:
            self.id = uuid4()
            self.created_at = datetime.now()
            self.updated_at = datetime.now()

验证修改

执行以下代码检查类型:

t = Model()
print(type(t.created_at))

输出结果会变为:

<class 'datetime.datetime'>

内容的提问来源于stack exchange,提问作者Leuel Asfaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:45:51