如何使用Moment.js生成29-OCT-2022 02.10.01.516000000 AM格式的日期?
使用Moment.js生成指定日期格式的正确方法
目标格式:29-OCT-2022 02.10.01.516000000 AM
你之前用的DD/mm/yyyy HH:mm:ss存在几个问题:mm是分钟而非月份,HH是24小时制不符合需求,同时没处理毫秒和12小时制的AM/PM标识,也没匹配目标里的分隔符。
正确的格式字符串应该是:
DD-MMM-YYYY hh.mm.ss.SSSSSSSSS A
各部分含义:
DD:两位数字的日期(如29)MMM:月份的三位缩写(Moment默认输出首字母大写,需转成全大写匹配目标格式)YYYY:四位数字的年份(如2022)hh:12小时制的两位数字小时(如02)mm:两位数字的分钟(如10)ss:两位数字的秒(如01)SSSSSSSSS:9位毫秒(对应目标里的516000000)A:大写的AM/PM标识
示例代码:
// 格式化当前时间 const formattedNow = moment().format('DD-MMM-YYYY hh.mm.ss.SSSSSSSSS A').toUpperCase(); console.log(formattedNow); // 输出类似 29-OCT-2022 02.10.01.516000000 AM // 格式化指定日期 const targetDate = moment('2022-10-29T02:10:01.516Z').format('DD-MMM-YYYY hh.mm.ss.SSSSSSSSS A').toUpperCase(); console.log(targetDate); // 输出 29-OCT-2022 02.10.01.516000000 AM
注意:Moment默认输出的MMM是首字母大写(如Oct),所以需要调用toUpperCase()转成全大写,才能匹配目标格式里的OCT。
内容的提问来源于stack exchange,提问作者sourabhk
相关产品推荐
相关产品推荐

