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左右,几乎无负担:
- 先安装依赖
npm install dayjs
- 业务代码中直接调用格式化方法
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
相关产品推荐
相关产品推荐

