角日期管道考虑了时区

问题描述

我正在使用日期管道显示从Web服务API获取的时间。日期以yyyy-MM-ddThh:mm:ss.000Z的形式出现,例如2020-08-12T07:06:07.000Z

但是,当我使用有角日期管道{{ arr.time | date:'mediumTime' }}时,显示的时间比给定时间多三小时,例如,此处显示的时间为10:06:07。我怀疑这是因为浏览器考虑了我的时区GMT + 3。如何在不考虑时区的情况下显示确切时间?

解决方法

尝试在管道中添加时区,

例如,以分钟为单位进行指定...对于GMT + 3,时区:“ 180”

{{ arr.time | date:'mediumTime' : '180'}}
,

时区可以在有角日期管道中明确提及。

{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}

或者您可以在几分钟内指定它,例如GMT-2,时区:“-120”

{{ yourDate | date: 'mediumTime' : '-120'}}

或者请参考此答案,它可能会对您有所帮助:-

How can I deal with the timezone issue with the Angular 4 date pipe?

,

可能有两个条件:

  1. 您获得的日期值为UTC
  2. UTC以外的其他

如果最后一个字符为UTC,则必须包含“ Z”。 因此,对于非UTC,我们可以在将其传递到管道之前添加“ Z”

这将始终打印接收到的日期值

{{arr.time?.charAt(arr.time?.length - 1) === 'Z' ? (arr.time | date:'mediumTime':'UTC') : (arr.time?.concat('Z') | date:'mediumTime':'UTC')}}