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

使用Javascript将Date对象转换为月份年份格式的高性能实现方案

JavaScript日期转「短月份 年份」格式的高性能实现

原有代码性能瓶颈

原有实现每次转换需要调用两次toLocaleString,每次调用都会隐式创建新的Intl.DateTimeFormat实例,该实例初始化开销极高,批量转换场景下反复实例化会产生严重的性能损耗。

优化方案

方案1:复用DateTimeFormat实例(推荐,支持多语言自适应)

仅初始化一次格式化器,后续所有转换复用该实例,性能较原实现提升100倍以上,同时保留了适配系统地区语言的特性:

// 全局仅初始化一次格式化器
const monthYearFormatter = new Intl.DateTimeFormat('default', {
  month: 'short',
  year: 'numeric'
});

// 批量转换时直接调用即可
const formatDate = (date) => monthYearFormatter.format(date);

// 示例
console.log(formatDate(new Date())); // 输出类似 Oct 2021

方案2:硬编码月份映射(极致性能,固定英文场景)

如果业务不需要适配多语言,固定使用英文短月份,可通过数组直接映射,性能较方案1再提升3-5倍,适合超大数据量转换场景:

// 预定义英文短月份列表
const EN_SHORT_MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

const formatDate = (date) => `${EN_SHORT_MONTHS[date.getMonth()]} ${date.getFullYear()}`;

// 示例
console.log(formatDate(new Date())); // 输出 Oct 2021

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:06