Вам понадобится следующее:
- Создание пользовательского канала формата даты.
- Создание настраиваемого адаптера даты, расширяющего NativeDateAdapter.
- Импорт
CustomDateAdapter
в модуль, где он будет использоваться как useClass: CustomDateAdapter
app.module.ts
@NgModule({
imports: [],
declarations: [],
exports: [],
entryComponents: [],
providers: [{
provide: DateAdapter,
useClass: CustomDateAdapter
}]
})
export class AppModule {}
заказ дата-adaptor.ts
export class CustomDateAdapter extends NativeDateAdapter {
format(date: Date): string {
const pipe = new UserDateFormatPipe();
return pipe.transform(date);
}
}
пользователем дата-format.ts
// using moment.js
export class UserDateFormatPipe implements PipeTransform {
transform(date: string | Date, timeFormat: string = ''): string {
const defaultValues = {
dateFormat: 'MM-dd-yyyy',
language: 'en-US',
timeZone: 'Central' //change defaults accordingly
};
const timeZoneOffset = moment(new Date(date))
.tz(defaultValues)
.format('Z');
const datePipe = new DatePipe(defaultValues.language);
const dateFormat = timeFormat ? `${defaultValues.dateFormat} ${timeFormat}` : defaultValues.dateFormat;
return datePipe.transform(date, dateFormat, timeZoneOffset, defaultValues.language);
}
}
Stackblitz-Demo