一尘不染

如何在Angular 2的DatePipe中设置语言环境?

javascript

我想使用欧洲格式显示日期,dd/MM/yyyy但使用DatePipe shortDate 格式仅使用美国日期样式显示MM/dd/yyyy
我假设多数民众赞成在默认语言环境是en_US。也许我在文档中丢失了,但是如何更改Angular2应用程序中的默认语言环境设置?也许有某种方法可以将自定义格式传递给DatePipe?


阅读 684

收藏
2020-05-01

共1个答案

一尘不染

从Angular2 RC6开始,您可以通过添加提供程序在应用程序模块中设置默认语言环境:

@NgModule({
  providers: [
    { provide: LOCALE_ID, useValue: "en-US" }, //replace "en-US" with your locale
    //otherProviders...
  ]
})

货币/日期/数字管道应选择区域设置。LOCALE_ID是一个OpaqueToken,将从角度/核心导入。

import { LOCALE_ID } from '@angular/core';

对于更高级的用例,您可能想从服务中选择语言环境。创建使用日期管道的组件时,语言环境将被解析(一次):

{
  provide: LOCALE_ID,
  deps: [SettingsService],      //some service handling global settings
  useFactory: (settingsService) => settingsService.getLanguage()  //returns locale string
}

希望对你有效。

2020-05-01