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

如何使用Moment.js将特定日期格式转换为目标格式?

解决Moment.js日期格式转换问题

你的代码存在两个核心问题:未指定输入日期的解析格式,以及输出格式的令牌使用错误,以下是具体修正方案:

问题拆解

  • 输入日期格式:29-Jan-2023 06.33.51.144 AM,包含「日-月缩写-年」、「时分秒毫秒(.分隔)」、「12小时制标识」
  • 目标输出格式:01/29/2023 06.33 AM,即「两位数字月/两位数字日/四位年」、「两位小时.两位分钟」、「12小时制标识」

修正后的代码

const inputDate = '29-Jan-2023 06.33.51.144 AM';
// 1. 指定输入格式完成日期解析
const parsedDate = moment(inputDate, 'DD-MMM-YYYY hh.mm.ss.SSS A');
// 2. 按目标格式输出
const formattedDate = parsedDate.format('MM/DD/YYYY hh.mm A');
console.log(formattedDate); // 输出:01/29/2023 06.33 AM

关键细节说明

输入格式令牌对应规则

  • DD:两位数字日期(如29)
  • MMM:月份英文缩写(如Jan)
  • YYYY:四位数字年份(如2023)
  • hh:12小时制的两位小时(01-12)
  • mm:两位数字分钟(33)
  • ss:两位数字秒数(51)
  • SSS:三位数字毫秒(144)
  • A:12小时制标识(AM/PM)

输出格式令牌对应规则

  • MM:两位数字月份(01)
  • DD:两位数字日期(29)
  • YYYY:四位数字年份(2023)
  • hh:12小时制两位小时(06)
  • mm:两位数字分钟(33)
  • A:12小时制标识(AM)

直接使用moment(date)不指定输入格式时,Moment的自动解析可能出现偏差;你原代码中的YYY是错误写法(应为YYYY),HH是24小时制令牌,MMM是月份缩写,这些都不符合目标输出的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:45:43