moment js,将EST字符串转换为UTC

moment js, converting EST string to UTC

本文关键字:转换 UTC 字符串 EST js moment      更新时间:2023-09-26

我是一名新的开发人员,我已经被困了一段时间,我该如何在moment JS中将以下日期转换为UTC版本(不需要UTC前缀/后缀)?

05/03/2016 16:00

我试过了:

var b = "05/03/2016 16:00";
moment.utc(b).format();
"2016-05-03T16:00:00Z"

我希望最终结果与b完全一样,但与UTC等效。我错过了什么?

您缺少输入格式输出格式

  • 如果没有输入格式,您的日期可能会被解释为5月3日或3月5日,具体取决于文化。

  • 如果没有输出格式,moment就无法知道您想要什么样的字符串,因此它默认为完整的ISO8601扩展格式。

您也错过了转换。如果输入是本地时间,并且您想要UTC,那么您应该使用moment(...)解析它,然后使用.utc()函数将它转换为UTC。

总结:

moment(b, 'MM/DD/YYYY HH:mm').utc().format('MM/DD/YYYY HH:mm')

还要注意,它是从代码运行的本地时间转换过来的。在你问的关于EST的问题中。如果您的本地时区是其他时区,那么EST将不适用于上述时区。相反,您需要使用即时时区插件来执行以下操作:

moment(b, 'MM/DD/YYYY HH:mm', 'America/New_York').utc().format('MM/DD/YYYY HH:mm')

moment(b).utc();

如果要将其更改为utc时间,您可能仍然需要在format()中添加参数,以确保它显示您最初编写它的方式

moment(b).utc().format("MM/DD/YYYY HH:mm");