我相信这条指令应该从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?
答案 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')