Angular Moment:Moment时区没有美国/纽约州的数据

从服务器收到的日期为时UTC区,我需要将其转换为特定时区,例如:。America/New_York以下是相同的代码

  <span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span>

但是这样做时出现以下错误:

Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/.

但是America/New_York是一个已知的时区,moment但仍然要求我添加时区。

回答:

您需要加载以下所有内容:

  • 时刻
  • 时区
  • moment-timezone的时区 数据
  • 角矩

在moment-timezone主页上,提供了三种不同的moment-

timezone分布。

  • moment-timezone.js只是 脚本。它不包含任何时区数据。如果使用此分布,则可以按照文档中的说明,通过moment.tz.add或提取自己的时区数据moment.tz.load

  • moment-timezone-with-data.js包括tz数据库中所有已知的时区数据,适用于网站上提到的版本。

  • moment-timezone-with-data-2012-2022.js包含相同的tz数据,但被 截短 到2012年到2022年。这是一个较小的数据文件,足以满足大多数浏览器端应用程序的需要。

每个都有缩小版本。

因此,如果您获取"Moment Timezone has no data for

America/New_York",因为America/New_York它是有效的TZ数据库标识符,那么您根本就没有为其加载数据。您可能正在使用moment-

timezone.js而未向其中添加数据。使用或添加时区数据moment.tz.add,或(更适当地)切换到已包含所有时区数据的文件之一。

但是,不要两者都做。时区数据仅应加载一次,而矩时区脚本仅应加载一次。如果使用moment-timezone-with-data.jsmoment-

timezone-with-data-2012-2022.js,则不应使用moment-timezone.js,因为该脚本已包含在内。

以上是 Angular Moment:Moment时区没有美国/纽约州的数据 的全部内容, 来源链接: utcz.com/qa/415376.html

回到顶部