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

如何用JavaScript将API返回的ISO日期时间格式转为可读字符串

将ISO 8601日期时间转换为可读格式

你可以通过JavaScript的Date对象结合几种方法,把API返回的2022-11-11T08:52:01.000000Z这类ISO 8601格式的字符串转换成可读的日期时间字符串,以下是几种常用方案:

1. 快速本地化输出

直接使用toLocaleString()方法,它会根据当前环境的时区和语言生成友好格式:

const isoDate = '2022-11-11T08:52:01.000000Z';
const readableDate = new Date(isoDate).toLocaleString();
console.log(readableDate); // 示例输出:"2022/11/11 16:52:01"(取决于本地时区)

2. 自定义固定格式

如果需要严格控制格式(比如YYYY-MM-DD HH:mm:ss),可以手动提取日期时间的各个部分,再拼接成目标字符串:

const isoDate = '2022-11-11T08:52:01.000000Z';
const dateObj = new Date(isoDate);

// 提取本地时间部分,注意月份是从0开始的,需要加1
const year = dateObj.getFullYear();
const month = String(dateObj.getMonth() + 1).padStart(2, '0');
const day = String(dateObj.getDate()).padStart(2, '0');
const hours = String(dateObj.getHours()).padStart(2, '0');
const minutes = String(dateObj.getMinutes()).padStart(2, '0');
const seconds = String(dateObj.getSeconds()).padStart(2, '0');

const readableDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
console.log(readableDate); // 示例输出:"2022-11-11 16:52:01"(本地时区)

如果需要保留UTC时间(和API返回的时间一致),改用UTC相关的方法:

const isoDate = '2022-11-11T08:52:01.000000Z';
const dateObj = new Date(isoDate);

const year = dateObj.getUTCFullYear();
const month = String(dateObj.getUTCMonth() + 1).padStart(2, '0');
const day = String(dateObj.getUTCDate()).padStart(2, '0');
const hours = String(dateObj.getUTCHours()).padStart(2, '0');
const minutes = String(dateObj.getUTCMinutes()).padStart(2, '0');
const seconds = String(dateObj.getUTCSeconds()).padStart(2, '0');

const utcReadableDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds} UTC`;
console.log(utcReadableDate); // 输出:"2022-11-11 08:52:01 UTC"

3. 灵活配置的国际化格式

使用Intl.DateTimeFormat可以更灵活地配置语言、时区和显示格式:

const isoDate = '2022-11-11T08:52:01.000000Z';
const dateObj = new Date(isoDate);

// 配置显示选项:24小时制、两位数字的年月时分秒
const formatOptions = {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: false
};

// 指定语言为中文,也可以换成'en-US'等其他语言
const formatter = new Intl.DateTimeFormat('zh-CN', formatOptions);
const readableDate = formatter.format(dateObj);
console.log(readableDate); // 输出:"2022/11/11 16:52:01"

注意事项

  • JavaScript的Date对象可以直接解析带Z后缀的UTC格式ISO字符串,无需额外处理。
  • padStart(2, '0')用于保证月份、日期、时分秒都是两位数字(比如1月转为01)。
  • 若需处理不同时区,可在Intl.DateTimeFormat的选项中添加timeZone参数(比如timeZone: 'UTC')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:31:06