使用moment.js从UTC转换为中心时间(' America / Chicago')

时间:2017-01-17 16:54:24

标签: momentjs

我相信这条指令应该从UTC正确转换为CST,但似乎是一小时关闭

moment.utc('07-18-2013 16:10:11', 'MM-DD-YYYY HH:mm').tz('America/Chicago').format("YYYY-MM-DD HH:mm");

当它返回2013-07-18 11:10

时,它会回复2013-07-18 10:10

我错过了什么吗?

编辑:如果我打印缩写的时区,我会CDT而不是CST。我如何指定CST?

1 个答案:

答案 0 :(得分:4)

你的代码是正确的,正如VincenzoC在评论中指出的那样,DST当时有效,这就是你得到结果的原因。

您正在使用America/Chicago,这意味着字面意思 - 芝加哥的时间。它代表了整个美国中部时区。在没有夏令时的情况下,美国没有使用中央时间的地方,因此要求这样做是荒谬/无效的。

如果你真的没有意味着美国中部时间,你的其他选择将是:

  • 选择正确的时区。

    .tz('America/Regina')        // Saskatchewan, Canada     (UTC-6 all year)
    .tz('America/Tegucigalpa')   // Honduras, South America  (UTC-6 all year)
    
  • 使用固定偏移量而不是时区。 (你不会需要这个时刻 - 时区附加组件。)

    .utcOffset('-06:00')