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

如何将JSON中的Datetime对象转换为Python对象及解决时间戳转Datetime失败问题

解决JSON时间戳转Python Datetime的问题

嘿,我来帮你搞定这个时间戳转换的坑!你遇到的问题根源其实很简单——拿到的created_at值1520369492984是毫秒级的Unix时间戳(从1970-01-01 UTC开始累计的毫秒数),而默认情况下Python原生datetime和pd.to_datetime都是处理秒级时间戳的,直接转自然会失败。下面给你详细的解决方法和两种转换方式的对比:

一、原生Python转换方法

用datetime模块直接处理,只需要先把毫秒转成秒(除以1000):

import datetime

# 从JSON拿到的毫秒级时间戳
timestamp = 1520369492984

# 转换为本地时区的datetime对象
local_dt = datetime.datetime.fromtimestamp(timestamp / 1000.0)
print(local_dt)
# 输出示例:2018-03-07 15:31:32.984000

# 如果需要UTC时区的datetime对象
utc_dt = datetime.datetime.utcfromtimestamp(timestamp / 1000.0)
print(utc_dt)
# 输出示例:2018-03-07 07:31:32.984000

二、Pandas转换方法

你之前用pd.to_datetime失败,是因为没指定时间戳的单位。只需要加上unit='ms'参数,就能直接识别毫秒级时间戳:

import pandas as pd

timestamp = 1520369492984

# 转换为Pandas的Timestamp对象
pd_timestamp = pd.to_datetime(timestamp, unit='ms')
print(pd_timestamp)
# 输出示例:2018-03-07 07:31:32.984000+00:00

# 如果需要转成Python原生的datetime对象
native_dt = pd_timestamp.to_pydatetime()
print(native_dt)
# 输出示例:2018-03-07 07:31:32.984000

三、两种转换方式对比

  • 原生Python:无需额外依赖,适合单个时间戳的简单转换,能灵活控制时区和输出格式,代码轻量化。
  • Pandas:适合批量处理(比如DataFrame整列的时间戳转换),自带时区支持,处理大数据量时效率更高,还能直接和Pandas的数据分析流程衔接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:56:58