MD-日期選擇器提供setLocale
方法,其可以被用於設置任何語言(list of locale)。
這裏的設置區域爲「FR」的例子:
export class DatepickerOverviewExample {
constructor(private dateAdapter: DateAdapter<Date>) {
this.dateAdapter.setLocale('fr');
}
}
有一點要記住,MD-日期選擇器的默認日期解析格式爲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
是否tryed使用'momentjs'?在你的'main.ts'中,你可以通過'{提供:LOCALE_ID,useValue:'fr-FR'}來提供一個區域設置。你應該通過'import'moment/locale/fr'來導入你的locale,然後你可以通過'moment.locale('de');'將你的datepicker組件的locale設置爲'ngOnInit'-hook。在你的datepicker組件中,你還應該通過'import *'作爲瞬間從'moment'導入時刻;' –
這裏是一個到momentjs文檔的鏈接https://momentjs.com/docs/ –
通過設置moment.locale(' FR');它應該工作。 – Melchia