我正在编写一个脚本,需要从数据库检索和存储时间戳。从数据库检索到的时间戳是一个UTC Zulu格式的字符串,格式为“YYYY-MM-DDTHH:MM:SS.SSSZ”。我想以当地时间的形式将此时间戳存储为“YYYY-MM-DDTHH:MM:SS.SSS”的格式。我目前尝试使用moment.js来实现这一点,但使用“.toISOString()”和其他方法均未取得成功。
但是,我注意到“moment(timestamp).format()”的输出并不返回我对UTC的理解所期望的字符串。以下是一个重现我的问题的代码示例:
这是我的输出:
为什么在.format()中从'YYYY-MM-DDTHH:mm:ss.sss'改为'YYYY-MM-DDTHH:MM:SS.SSS'会导致不同的输出结果?我的期望输出是正确的吗,还是我理解有误?最后,在这种情况下是否有更好的方法来实现我期望的输出?
但是,我注意到“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'会导致不同的输出结果?我的期望输出是正确的吗,还是我理解有误?最后,在这种情况下是否有更好的方法来实现我期望的输出?
sss
格式,2. 大写版本的S
、SS
等返回分数秒,因此是毫秒,...,3.MM
返回月份。 - Andreasnew Date()
会将你的时间戳转换为本地时间戳。 - RajnishCoder