1

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

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

4

3 回答 3

1

尝试在管道中添加时区,

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

{{ arr.time | date:'mediumTime' : '180'}}
于 2020-08-12T19:22:24.223 回答
1

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

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

或者您可以在几分钟内指定它,例如 GMT-2, timezone: '-120'

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

或者请参考这个答案,它可以帮助你: -

如何处理 Angular 4 日期管道的时区问题?

于 2020-08-12T19:26:39.260 回答
1

可以有两个条件:

  1. 您获得的日期值是 UTC
  2. 世界标准时间以外

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

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

{{arr.time?.charAt(arr.time?.length - 1) === 'Z' ? (arr.time | date:'mediumTime':'UTC') : (arr.time?.concat('Z') | date:'mediumTime':'UTC')}}
于 2020-08-12T20:59:25.653 回答