【发布时间】:2018-11-09 14:18:18
【问题描述】:
我正在编写一个需要从数据库中检索和存储时间戳的脚本。数据库中的时间戳被检索为 UTC Zulu 格式的字符串“YYYY-MM-DDTHH:MM:SS.SSSZ”。我想在本地时间以“YYYY-MM-DDTHH:MM:SS.SSS”格式存储这个时间戳。我目前正在尝试用 moment.js 来做这件事,我用 ".toISOString()" 和其他方法收效甚微。
但是,我注意到“moment(timestamp).format()”的输出没有返回我对 UTC 的了解所期望的字符串。这是一个复制我的问题的代码示例:
var moment = require('moment');
var timestamp = new Date('2018-05-30T15:01:01.111Z');
console.log(timestamp);
console.log(moment(timestamp).format('YYYY-MM-DDTHH:mm:ss.sss'));
console.log(moment(timestamp).format('YYYY-MM-DDTHH:MM:SS.SSS'));
这是我的输出:
2018-05-30T15:01:01.111Z
2018-05-30T16:01:01.011
2018-05-30T16:05:11.111
这是我的预期:
2018-05-30T15:01:01.111Z
2018-05-30T16:01:01.111
2018-05-30T16:01:01.111
为什么在 .format() 中将大小写从 'YYYY-MM-DDTHH:mm:ss.sss' 更改为 'YYYY-MM-DDTHH:MM:SS.SSS' 会导致不同的输出?我的预期输出是否正确或有误解的时刻。(时间戳)。格式()?最后,在这种情况下,是否有更好的方法来实现我的预期输出?
【问题讨论】:
-
mm是分钟MM是几个月 -
阅读documentation怎么样? 1.没有
sss格式,2.大写版本S,SS,...返回小数秒,因此毫秒,...,3.MM返回月份 -
小心
new Date()会将您的时间戳更改为您的本地时间戳。
标签: javascript node.js timestamp momentjs utc