MomentJs和时区缩写

时间:2014-01-11 17:42:05

标签: momentjs

我在使用momentjs库时遇到了麻烦

moment("Mon Oct 14 01:00:00 GMT 2013")  parses correctly 

但行

moment("Mon Oct 14 01:00:00 BST 2013")  throws an invalid date

我已经尝试构建一个格式字符串,但我认为我需要的zz格式已被弃用,有没有办法让它完全跳过BST / GMT位,因为我只对日期感兴趣

提前致谢。

1 个答案:

答案 0 :(得分:3)

时区缩写不是唯一的,因此无法解析它们。您可以通过将任何非格式字符作为占位符来忽略它:

moment("Mon Oct 14 01:00:00 BST 2013","ddd MMM DD HH:mm:ss ? YYYY")

但是你应该知道,忽略它,你将假设代码运行的计算机的本地时区。将您的计算机设置为其他时区,然后在此处拨打.format(),您就会明白我的意思。

也许您不关心时区,只想将其重新格式化为其他内容。这没关系,但如果由于计算机本地时区的夏令时转换而提供的日期无效,该怎么办?您的浏览器将向后或向前跳过,具体取决于您运行的浏览器。为避免这种情况,您应该使用UTC而不是本地时间。即使您的输入值完全来自某个其他时区,但使用UTC也可以确保它不会受到损坏。

moment.utc("Mon Oct 14 01:00:00 BST 2013","ddd MMM DD HH:mm:ss ? YYYY")