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.js
或moment-
timezone-with-data-2012-2022.js,则不应使用moment-timezone.js
,因为该脚本已包含在内。
以上是 Angular Moment:Moment时区没有美国/纽约州的数据 的全部内容, 来源链接: utcz.com/qa/415376.html