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

如何在JavaScript中获取正确的ISO格式日期?

问题解决:JavaScript Date时区转换导致日期偏移

问题原因

你创建的new Date(2023,4,25)是基于**本地时区(GMT+2)**生成的日期(5月25日0点),而toISOString()方法会将日期转换为UTC时区输出。由于UTC比你的本地时区晚2小时,所以本地的5月25日0点对应UTC的5月24日22点,这就是结果不符合预期的原因。

解决方案

方法1:创建UTC时区的Date对象

使用Date.UTC()生成UTC时区的时间戳,再以此创建Date对象:

let myDate = new Date(Date.UTC(2023, 4, 25));
myDate.toISOString(); // 返回 "2023-05-25T00:00:00.000Z"

Date.UTC(2023,4,25)直接生成UTC时区2023年5月25日0点的时间戳,基于这个时间戳创建的Date对象,调用toISOString()会输出你期望的UTC时间字符串。

方法2:直接构造ISO格式字符串

如果只需要最终的字符串结果,无需操作Date对象,可以手动拼接符合ISO标准的字符串:

const year = 2023;
const month = String(5).padStart(2, '0'); // 这里用实际月份1-12,无需减1
const day = String(25).padStart(2, '0');
const targetISOString = `${year}-${month}-${day}T00:00:00.000Z`;
// targetISOString 即为 "2023-05-25T00:00:00.000Z"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:47:37