使用angularjs中的时区格式化日期

时间:2015-07-10 13:43:03

标签: angularjs timezone

使用angularjs 1.2.26我无法将我的日期输入格式化为所需的时区,例如:http://plnkr.co/edit/CxCqoR3Awcl1NFrCZYjx?p=preview

{{'2015-07-10T12:37:08Z' | date : "MMMM d, y 'at' h:mma Z" : 'America/Bahia'}}

{{'2015-07-10T12:37:08Z' | date : "MMMM d, y 'at' h:mma Z" : 'Europe/Paris'}}

根据我的浏览器的本地时区提供了相同的输出,忽略了我设置的时区。

2 个答案:

答案 0 :(得分:2)

有两个问题:

  • 时区支持看起来像是在1.2.26之后推出的
  • 时区支持不使用任意TZDB ID。来自v1.4.1的文档:

      

    用于格式化的时区。它理解UTC / GMT和美国大陆时区的缩写,但是对于一般用途,使用时区偏移,例如,'+ 0430'(格林威治子午线以东4小时30分钟)如果未指定,则为时区将使用浏览器。

    v1.3.16中,它更受限制:

      

    用于格式化的时区。目前,仅支持“UTC”。如果未指定,将使用浏览器的时区。

因此,如果您更改要使用的示例:

<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.2/angular.js" data-semver="1.4.2"></script>

然后:

<span>{{'2015-07-10T12:37:08' | date : "MMMM d, y 'at' h:mma Z" : 'PST'}}</span>
<br/>
<span>{{'2015-07-10T12:37:08' | date : "MMMM d, y 'at' h:mma Z" : 'EDT'}}</span>

(例如)然后你会得到输出:

July 10, 2015 at 3:37AM -0800 
July 10, 2015 at 7:37AM -0400

答案 1 :(得分:0)

检查https://code.angularjs.org/1.2.26/docs/api/ng/filter/date

您无法在过滤器中找到与时区相关的任何内容。