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

在JavaScript中将UTC时区转换为DD MMM,YYYY 15:30:31格式的最佳方法

最佳实现方案:将UTC时间转为DD MMM,YYYY 15:30:31格式

下面提供两种可靠的实现方式,优先推荐原生API方案:

方案一:使用原生Intl.DateTimeFormat(推荐)

利用浏览器/Node.js原生的国际化API,指定UTC时区并配置格式选项,能自动处理补零、月份缩写等细节,兼容性好且符合标准。

const utcDate = new Date("2023-05-25T12:55:41.8382011Z");

// 配置格式化规则
const formatOptions = {
  timeZone: 'UTC',
  day: '2-digit',
  month: 'short',
  year: 'numeric',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: false // 强制24小时制
};

// 通过formatToParts精准拼接成目标格式
const parts = new Intl.DateTimeFormat('en-GB', formatOptions).formatToParts(utcDate);
const formatted = `${parts.find(p => p.type === 'day').value} ${parts.find(p => p.type === 'month').value},${parts.find(p => p.type === 'year').value} ${parts.find(p => p.type === 'hour').value}:${parts.find(p => p.type === 'minute').value}:${parts.find(p => p.type === 'second').value}`;

console.log(formatted); // 输出:25 May,2023 12:55:41

方案二:手动格式化(自定义控制)

如果需要完全自主控制格式细节,不依赖IntlAPI,可以直接提取UTC时间的各个部分进行拼接:

const utcDate = new Date("2023-05-25T12:55:41.8382011Z");
const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

// 提取UTC时间各部分并补零
const day = String(utcDate.getUTCDate()).padStart(2, '0');
const month = monthNames[utcDate.getUTCMonth()];
const year = utcDate.getUTCFullYear();
const hour = String(utcDate.getUTCHours()).padStart(2, '0');
const minute = String(utcDate.getUTCMinutes()).padStart(2, '0');
const second = String(utcDate.getUTCSeconds()).padStart(2, '0');

// 拼接成目标格式
const formatted = `${day} ${month},${year} ${hour}:${minute}:${second}`;

console.log(formatted); // 输出:25 May,2023 12:55:41

两种方案对比

  • 原生API方案:代码更简洁,自动处理本地化细节(如月份缩写、数字补零),无需维护额外的月份数组,适合大多数常规场景。
  • 手动格式化:完全自定义格式规则,不依赖环境的Intl支持(现代浏览器和Node.js均已全面支持Intl),适合有特殊格式定制需求的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:45:30