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

TypeScript中如何将ISO格式日期格式化为DD-MMMM-YYYY格式

TypeScript 日期转DD-MMMM-YYYY格式实现方案

你当前的TS日期定义代码:

mydate: Date = new Date('2021-11-14T18:30:00.000+00:00');

目标输出格式为两位日期+连字符+完整英文月份名+连字符+四位年份,例:07-July-2022,以下是两种可直接落地的实现方式:

方案1:原生JS/TS实现(无第三方依赖)

不需要安装额外包,手动做字段拼接即可,适合对包体积敏感的场景:

// 按0-11的月份索引匹配英文全称
const FULL_MONTH_LIST = [
  'January', 'February', 'March', 'April', 'May', 'June',
  'July', 'August', 'September', 'October', 'November', 'December'
];

/**
 * 把Date对象格式化为 DD-MMMM-YYYY 格式
 * @param date 待格式化的Date对象
 * @param useUtc 是否使用UTC时间取值,默认false取本地时区时间
 */
function formatDateToDMonthY(date: Date, useUtc = false): string {
  const day = useUtc ? date.getUTCDate() : date.getDate();
  const monthIndex = useUtc ? date.getUTCMonth() : date.getMonth();
  const year = useUtc ? date.getUTCFullYear() : date.getFullYear();

  return `${day.toString().padStart(2, '0')}-${FULL_MONTH_LIST[monthIndex]}-${year}`;
}

// 调用示例
const mydate: Date = new Date('2021-11-14T18:30:00.000+00:00');
// 本地时区(东八区)输出:15-November-2021
console.log(formatDateToDMonthY(mydate));
// UTC时区输出:14-November-2021
console.log(formatDateToDMonthY(mydate, true));

注:如果传入2022年7月7日的Date对象,调用上述方法即可输出你给出的示例结果07-July-2022

方案2:使用dayjs轻量库实现(推荐项目场景使用)

如果项目中有多处日期处理逻辑,用成熟的日期库可以减少手动维护的边界问题,dayjs压缩后体积只有2KB左右,几乎无负担:

  1. 先安装依赖
npm install dayjs
  1. 业务代码中直接调用格式化方法
import dayjs from 'dayjs';
// 如果需要UTC时间支持,引入utc插件即可
// import utc from 'dayjs/plugin/utc';
// dayjs.extend(utc);

const mydate: Date = new Date('2021-11-14T18:30:00.000+00:00');
// 本地时区格式化
const formatted = dayjs(mydate).format('DD-MMMM-YYYY');
// UTC时区格式化
// const formattedUtc = dayjs(mydate).utc().format('DD-MMMM-YYYY');

console.log(formatted);

格式化占位符说明:

  • DD:两位数字的日期,不足两位自动补前导零
  • MMMM:完整英文月份名称
  • YYYY:四位数字的年份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:36:24