当使用 Angular 的 datepipe 服务时,在 BST(英国夏令时)时区下,会出现日期显示问题。因为 BST 的时区标识修改了,造成 DatePipe 无法正确解析时区。日期会显示 UTC 时间,但没有进行时区转换。
为了解决这个问题,需要添加一个名为 "BST" 的时区配置 。以以下代码为例:
import { registerLocaleData } from '@angular/common';
import localeEnGb from '@angular/common/locales/en-GB';
registerLocaleData(localeEnGb, 'BST');
注册名为 BST 的时区,即可使用 DatePipe 进行日期格式化,如下:
{{ dateObj | date:'MM/dd/yyyy HH:mm' : 'BST' }}
这将返回 BST 时区下的日期时间。
参考链接:https://stackoverflow.com/questions/44416701/angular-datepipe-not-working-with-bst-timezone