该问题可能由于时区设置不正确导致。可以通过使用 JavaScript 中的 Intl.DateTimeFormat 对象来设置正确的时区并对日期进行格式化。
以下是一个示例:
export function formatDate(date: Date, format: string, timezone: string) {
const options = { timeZone: timezone, ...format };
return new Intl.DateTimeFormat([], options).format(date);
}
@Component({
selector: 'app-example',
template: '{{ date | date: "yyyy-MM-dd HH:mm:ss" : timezone }}
',
})
export class ExampleComponent {
date = new Date();
timezone = 'Europe/London';
formattedDate = formatDate(this.date, 'yyyy-MM-dd HH:mm:ss', this.timezone);
}
在这个示例中,我们将日期对象传递给 formatDate() 函数,并使用 Intl.DateTimeFormat 对象将日期格式化为所选时区的格式。
在组件模板中,我们使用标准的 Angular 日期管道来呈现日期,并将所选时区作为参数传递。
请注意,我们还可以为 datePipe 添加一个自定义管道,将日期和时区作为参数传递。这个管道将使用 formatDate() 函数将日期格式化为所选时区的格式。
下一篇:Angular中的日期和时区