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

如何使用原生JavaScript转换API返回的日期时间格式

处理ISO日期格式转换

针对你拿到的2023-01-24T06:00:00.000Z格式日期,这里有几种简单直接的转换方式:

方法1:字符串替换(最直接)

利用字符串的replace方法,把T换成空格,再去掉固定后缀.000Z:

const rawDate = dataAPI.dateStation;
const formattedDate = rawDate.replace('T', ' ').replace('.000Z', '');
console.log(formattedDate); // 输出:2023-01-24 06:00:00

这种方式适合确定API返回的毫秒部分固定为.000的场景,操作简单高效。

方法2:正则表达式(更通用)

如果API返回的毫秒部分可能不是.000(比如.123Z),用正则匹配去掉所有.xxxZ后缀,同时替换T:

const rawDate = dataAPI.dateStation;
const formattedDate = rawDate.replace(/T/, ' ').replace(/\.\d+Z$/, '');
console.log(formattedDate); // 输出:2023-01-24 06:00:00

正则\.\d+Z$会匹配末尾的点号+任意位数数字+Z,适配不同毫秒值的情况。

方法3:Date对象格式化(支持时区调整)

如果需要后续对日期做其他操作,或需转换时区,可以先转成Date对象再拼接格式:

const rawDate = dataAPI.dateStation;
const date = new Date(rawDate);
// 因为原始日期带Z(UTC时区),所以用UTC方法确保时间和原数据一致
const year = date.getUTCFullYear();
const month = String(date.getUTCMonth() + 1).padStart(2, '0');
const day = String(date.getUTCDate()).padStart(2, '0');
const hours = String(date.getUTCHours()).padStart(2, '0');
const minutes = String(date.getUTCMinutes()).padStart(2, '0');
const seconds = String(date.getUTCSeconds()).padStart(2, '0');

const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
console.log(formattedDate); // 输出:2023-01-24 06:00:00

如果需要转换为本地时区,把UTC相关方法换成对应本地方法(比如getFullYear、getMonth等)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:20:50