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

如何将RESTful API返回的datetime列整数值转换为datetime格式?

毫秒级时间戳转datetime格式解决方案

你从接口拿到的13位整数值是毫秒级Unix时间戳,Python标准时间转换方法默认接收秒级时间戳,转换前需要先做精度调整,不同场景的处理方案如下:

原生Python手动转换

单条数据转换示例:

import datetime

# 示例毫秒时间戳
timestamp = 1622332800000
# 除以1000转为秒级后转换为datetime
dt = datetime.datetime.fromtimestamp(timestamp / 1000)
print(dt)
# 输出(本地时区):2021-05-30 08:00:00

需要UTC标准时间的话可以用以下方法:

import datetime

timestamp = 1622332800000
dt_utc = datetime.datetime.utcfromtimestamp(timestamp / 1000)
print(dt_utc)
# 输出(UTC时区):2021-05-30 00:00:00

批量转换时间戳列表

如果拿到的是批量时间戳列表,可以直接用列表推导式处理:

import datetime

ts_list = [1622332800000, 1622937600000, 1623542400000, 1624147200000]
dt_list = [datetime.datetime.fromtimestamp(ts / 1000) for ts in ts_list]

SQLAlchemy层面自动转换(可选)

如果是你自行开发的RESTful接口,可以在ORM层配置自动转换逻辑,避免每次接口返回后手动处理:

from sqlalchemy import Column, DATETIME
from sqlalchemy.ext.hybrid import hybrid_property
import datetime
from base import base # 替换为你实际的基类导入路径

class Table(base):
    __tablename__ = "你的表名"
    # 把原datetime列重命名为私有字段存储
    _datetime = Column("datetime", DATETIME)

    @hybrid_property
    def datetime(self):
        # 读取时直接返回datetime对象,接口序列化时可直接转为标准时间字符串
        return self._datetime
    
    @datetime.setter
    def datetime(self, value):
        # 写入时如果传入的是整数时间戳自动转换为datetime格式
        if isinstance(value, int):
            self._datetime = datetime.datetime.fromtimestamp(value / 1000)
        else:
            self._datetime = value

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:48:05