如何用MomentJS生成含6位毫秒的指定格式当前时间?
解决MomentJS生成6位微秒时间格式的问题
嘿,我来帮你搞定这个时间格式的问题!
你遇到的核心问题是格式符用错了——MomentJS里并没有ms这个用来表示毫秒/微秒的格式令牌,你之前写的YYYY-MM-DDThh:mm:ss.ms自然得不到想要的6位数值。
正确的实现方法
要生成2018-12-10T02:12:13.008391这种带6位微秒的ISO格式时间,你需要用SSSSSS作为小数部分的格式符:
var moment = require('moment'); // 注意:如果需要24小时制请用HH,12小时制才用hh var datetime = moment().format('YYYY-MM-DDTHH:mm:ss.SSSSSS'); console.log(datetime);
为什么这样有效?
- MomentJS里的
S系列格式符对应时间的毫秒/微秒部分:S:1位毫秒(0-9)SS:2位毫秒(00-99)SSS:3位毫秒(000-999)SSSSSS:6位微秒级数值(前3位是毫秒,后3位是微秒)
- 如果你的运行环境(比如Node.js高版本、现代浏览器)支持高精度时间,Moment会自动获取真实的微秒值;如果不支持,它会自动补0到6位,保证格式符合要求。
额外提醒
你之前用的hh是12小时制的小时格式(01-12),如果你的需求是24小时制(比如例子里的02:12是凌晨两点),记得换成HH(00-23)哦。
内容的提问来源于stack exchange,提问作者Dev1ce
相关产品推荐
相关产品推荐

