Javascript 将iso 8601格式化为;“嗯”;及;每小时每分钟;使用矩js

Javascript 将iso 8601格式化为;“嗯”;及;每小时每分钟;使用矩js,javascript,date,momentjs,iso8601,Javascript,Date,Momentjs,Iso8601,我的日期格式如下: "2021-01-16T03:00:000Z" 我想使用momentJs从中获得如下内容: Jan 16 - 3am 我已经编写了这段代码,但它给了我无效日期错误(我知道.format()参数不是我想要的日期,但在第一步中我一直无法从中获取有效日期,我找不到应该为我想要的格式传递哪个参数): 如何使用momentJs获取所需的格式日期?您可以尝试以下方法: const a = moment("2021-01-16T03:00:00Z"

我的日期格式如下:

"2021-01-16T03:00:000Z"
我想使用momentJs从中获得如下内容:

Jan 16 - 3am
我已经编写了这段代码,但它给了我
无效日期
错误(我知道.format()参数不是我想要的日期,但在第一步中我一直无法从中获取有效日期,我找不到应该为我想要的格式传递哪个参数):

如何使用momentJs获取所需的格式日期?

您可以尝试以下方法:

const a = moment("2021-01-16T03:00:00Z")
let   b = a.format("MMM Do [-] h a")
// MMM Do [-] h a
console.log(b)

您还有一个他想要的0:2021-01-16T03:00:00[0]Z

您需要将字符串作为
YYYY:MM:DDTHH:MM:SS传递给它:

const getDateFormatted=str=>{
const date=str.slice(0,19);
返回时刻(日期)。格式(“MMM DD-HA”);
}
日志(getDateFormatted(“2021-01-16T03:00:000Z”)

我又得到了“无效日期”!初始字符串似乎是UTC,但是
str.slice(0,19)
将删除偏移指示符,以便将其解析为本地。@RobG OP的预期结果需要此实现,它说明
3am
不是
5am
5am”来自哪里?OP希望“2021-01-16T03:00:000Z”,即UTC,变成“类似于……1月16日凌晨3点”。将其解析为本地意味着它可能不再是UTC 03:00。答案中应指出时区的变化。另一种不改变时区的方法是使用@RobG你是对的,这需要更多的澄清,我更新了答案。
const a = moment("2021-01-16T03:00:00Z")
let   b = a.format("MMM Do [-] h a")
// MMM Do [-] h a
console.log(b)