在moment.js 中使用日期格式时如何解决时区问题?

问题描述

这是我的输入日期, let inputDate = '2021-01-15T11:22:10.000Z'。 我想将日期格式更改为 MM/DD/YYYY HH:mm:ss 为此,我使用了以下我使用的 moment.js 。这是我的代码,

moment(inputDate).format('MM/DD/YYYY HH:mm:ss') = 01/15/2021 16:52:10

格式化日期后,我得到了添加时区的日期。如何以 MM/DD/YYYY HH:mm:ss 格式获取确切时间?

我也尝试了以下方法;

moment(inputDate).local(true).format('MM/DD/YYYY HH:mm:ss')
moment(inputDate).utcOffset(330).format('MM/DD/YYYY HH:mm:ss')
moment(inputDate).utcOffset(0).format('MM/DD/YYYY HH:mm:ss')
moment(inputDate).utcOffset("+05:30").format('MM/DD/YYYY HH:mm:ss')
moment(inputDate).utcOffset("-05:30").format('MM/DD/YYYY HH:mm:ss')

请帮我找出问题所在。

解决方法

您应该告诉 moment 您提供的日期是 UTC。您可以使用 utc() 函数实现此目的:

moment.utc(inputDate)

如果在 utc() 之后格式化,您将看到 UTC 时区的日期:

moment.utc(inputDate).format('MM/DD/YYYY HH:mm:ss')

let inputDate = '2021-01-15T11:22:10.000Z';

console.log(moment.utc(inputDate).format('MM/DD/YYYY HH:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...