Javascript 使用moment.js将datetime格式化为DD-MMM-YYY HH:mm:ss

Javascript 使用moment.js将datetime格式化为DD-MMM-YYY HH:mm:ss,javascript,datetime,momentjs,Javascript,Datetime,Momentjs,我有这种格式的日期 2017-01-09T18:30:00.000Z 我正在使用moment.js,并试图将其转换为DD-MMM-YYY HH:mm:ss-->09-Jan-2017 18:30:00 我试过这种方法 dateTime = moment("2017-01-09T18:30:00.000Z").format("DD-MMM-YYYY HH:mm:ss"); 但我得到的输出是这样的2017年9月1日0:00 我错过了什么?尝试使用: dateTime = moment("2017

我有这种格式的日期

2017-01-09T18:30:00.000Z
我正在使用moment.js,并试图将其转换为
DD-MMM-YYY HH:mm:ss
-->
09-Jan-2017 18:30:00

我试过这种方法

dateTime = moment("2017-01-09T18:30:00.000Z").format("DD-MMM-YYYY HH:mm:ss");
但我得到的输出是这样的
2017年9月1日0:00
我错过了什么?

尝试使用:

dateTime = moment("2017-01-09T18:30:00.000Z").format("DD-MMM-YYYY HH:mm:ss"); // note the extra Y in YYYY
console.log(dateTime);
// => 10-Jan-2017 05:30:00

在大多数情况下,您所做的似乎是正确的。

您得到00:00的原因是因为
moment
将日期对象转换为您的时区。要删除此项并格式化不带时区的日期,请使用
moment.utc()

将您的小提琴更新为:

var dateTime=time.utc(“2017-01-09T18:30:00.000Z”).格式(“DD-MMM-YYYY HH:mm:ss”);
document.getElementById('output').innerText=dateTime;


它将工作,输出:
09-Jan-2017 18:30:00

这个
时刻(“2017-01-09T18:30:00.000Z”)。格式(“DD-MMM-YYYY HH:mm:ss”)
给出了看起来正确的
09-Jan-2017 23:30:00
YYY
有点奇怪(你得到的是
172017
),除此之外,。不知道-一定还有其他事情你没有告诉我们。例如,您如何检查/输出
日期时间
,因为您所说的内容与格式说明符根本不匹配,甚至与日期部分也不匹配。对于我来说,它显示20:30,这是您指定的GMT+2时间-18:30。它显示00:00的原因(我认为)是因为(我假设)你住在印度,而矩.js显示的是时区修正的时间。如果这就是全部,而其余的输出事实上是正确的(我原以为是2017年1月10日00:00),那么你的问题可能是。