MD-日付ピッカーは、任意の言語(list of locale)を設定するために使用することができるsetLocale
方法を提供します。
ここでは「FR」にロケールを設定する例です:心に留めておくべき
export class DatepickerOverviewExample {
constructor(private dateAdapter: DateAdapter<Date>) {
this.dateAdapter.setLocale('fr');
}
}
一つ、MD-DatePickerののデフォルトの日付解析形式はmm/dd/yyyy
で、ロケールがために(別の日付形式を持っているので、もし'fr'のdd/mm/yyyy
)、新しい日付形式を解析するためにNativeDateAdapter
を拡張するクラスを定義する必要があります。適切な日付形式を設定しないと、questionのような問題が発生します。
import { NativeDateAdapter, DateAdapter, MD_DATE_FORMATS } from "@angular/material";
export class FrenchDateAdapter extends NativeDateAdapter {
parse(value: any): Date | null {
if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
const str = value.split('/');
if (str.length < 2 || isNaN(+str[0]) || isNaN(+str[1]) || isNaN(+str[2])) {
return null;
}
return new Date(Number(str[2]), Number(str[1]) - 1, Number(str[0]), 12);
}
const timestamp = typeof value === 'number' ? value : Date.parse(value);
return isNaN(timestamp) ? null : new Date(timestamp);
}
}
@Component({
...
providers: [{provide: DateAdapter, useClass: FrenchDateAdapter}],
})
Plunker demo
は 'momentjs'を使用するようにしようと試みていますか?あなたの 'main.ts'では' {provide:LOCALE_ID、useValue: 'fr-FR'} 'でロケール設定を提供することができます。 'import 'moment/locale/fr'でロケールをインポートし、datepickerコンポーネントのロケールを' moment.locale(' de ');によって 'ngOnInit'フックに設定することができます。あなたのdatepickerコンポーネントでは、 'moment * 'から' moment 'をモーメントとしてインポートする必要があります; –
ここに、momentjsのドキュメントへのリンクがあります。https://momentjs.com/docs/ –
本当にいいアイデアは、moment.locale(' fr ');それは動作するはずです。 – Melchia