在Angular 9中,可以使用DatePipe来处理日期和时间的格式化。然而,DatePipe不支持时区的格式化。但是,你可以使用第三方库moment.js来处理时区的日期和时间。
首先,安装moment.js库:
npm install moment
然后,在你的组件中导入moment.js和Angular的DatePipe:
import { Component } from '@angular/core';
import * as moment from 'moment';
import { DatePipe } from '@angular/common';
接下来,创建一个自定义的管道,用于处理时区的日期和时间格式化。在管道类中,使用moment.js将日期和时间格式化为所需的时区:
@Pipe({
name: 'timezoneDate'
})
export class TimezoneDatePipe implements PipeTransform {
transform(value: any, timezone: string, format: string = 'yyyy-MM-dd HH:mm:ss'): any {
const date = moment(value).tz(timezone).format(format);
return date;
}
}
在你的模板中,可以使用自定义的管道来格式化时区的日期和时间。例如:
{{ myDate | timezoneDate: 'America/New_York' }}
在这个例子中,myDate是一个日期对象,它会根据'America/New_York'时区进行格式化。
最后,将自定义的管道添加到你的NgModule的providers数组中:
@NgModule({
declarations: [TimezoneDatePipe],
providers: [DatePipe],
// ...
})
export class AppModule { }
现在,你就可以在Angular 9中使用时区的日期和时间格式化了。