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

JavaScript Date对象与Python datetime对象是否兼容?如何转换指定ISO日期?

JavaScript Date与Python datetime对象的兼容性及转换方法

当然兼容啦!你提到的2020-06-19T11:32:16.548109Z这种带时区的ISO 8601格式字符串,是两种语言都认可的标准日期格式,转换起来完全没问题,下面给你讲几种实用的方法:

1. 直接用JavaScript Date构造函数解析

这是最省心的方式,JavaScript的Date对象原生就支持解析这种格式的字符串——哪怕带微秒也没关系,虽然JS的Date对象只精确到毫秒,多余的微秒会被自动截断,但日常使用基本不受影响。

举个代码例子:

// 来自Python的datetime字符串
const pythonDatetimeStr = '2020-06-19T11:32:16.548109Z';
// 直接传入Date构造函数
const jsDate = new Date(pythonDatetimeStr);

// 看看结果
console.log(jsDate); // 会根据你的本地时区输出对应的日期,比如我这边是Fri Jun 19 2020 19:32:16 GMT+0800 (中国标准时间)
console.log(jsDate.toISOString()); // 可以转回标准格式:"2020-06-19T11:32:16.548Z"

2. 手动处理微秒(如果需要保留)

如果你有特殊需求,必须保留微秒信息(毕竟JS Date本身不存储微秒),可以手动从字符串里提取这部分内容单独存储:

const pythonDatetimeStr = '2020-06-19T11:32:16.548109Z';
// 拆分日期部分和微秒部分
const [datePart, microsecSection] = pythonDatetimeStr.split('.');

// 生成Date对象(其实直接用原字符串也可以,JS会自动处理)
const jsDate = new Date(datePart + '.Z');
// 提取微秒部分(这里取后三位,前面的548是毫秒)
const microseconds = microsecSection ? parseInt(microsecSection.slice(3, 6), 10) : 0;

console.log('日期对象:', jsDate);
console.log('微秒数:', microseconds); // 输出109

顺便说下反向转换(JS Date转Python datetime)

如果之后需要把JS的Date对象转回Python能识别的格式,直接用toISOString()方法生成标准字符串就行,Python端也能轻松解析:

JS端代码:

const jsDate = new Date();
// 生成ISO格式字符串
const isoDatetimeStr = jsDate.toISOString();
// 把这个字符串传给Python就行

Python端代码示例:

from datetime import datetime

# 接收来自JS的ISO字符串
iso_str = "2020-06-19T11:32:16.548Z"
# 处理Z时区,Python 3.11+的fromisoformat支持直接解析带Z的格式,低版本可以替换成+00:00
dt = datetime.fromisoformat(iso_str.replace('Z', '+00:00'))
print(dt) # 输出2020-06-19 11:32:16.548000+00:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:47:50