Angular 2のDatePipeでロケールを設定するにはどうすればいいですか? 質問する

Angular 2のDatePipeでロケールを設定するにはどうすればいいですか? 質問する

dd/MM/yyyyDatePipeを使用してヨーロッパ形式で日付を表示したいショートデート米国の日付スタイルを使用してのみ表示されるようにフォーマットしますMM/dd/yyyy
デフォルトのロケールは en_US であると想定しています。ドキュメントに不足しているかもしれませんが、Angular2 アプリでデフォルトのロケール設定を変更するにはどうすればよいですか? または、カスタム形式を DatePipe に渡す方法があるのでしょうか?

ベストアンサー1

Angular2 RC6 以降では、プロバイダーを追加することで、アプリ モジュールにデフォルトのロケールを設定できます。

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

通貨/日付/数値パイプはロケールを取得します。LOCALE_IDは不透明トークン、angular/core からインポートされます。

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

より高度な使用例では、サービスからロケールを取得する必要があるかもしれません。ロケールは、日付パイプを使用するコンポーネントが作成されるときに (1 回) 解決されます。

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

それがあなたにとってうまくいくことを願っています。

おすすめ記事