带有时区的角度日期管道无法正确转换

dev*_*evC 3 time timezone date pipe angular

我将 UTC 日期时间传递给角度应用程序,我想显示不同时区的时间。这是 Postman 上返回日期的样子:

"2021-07-21T09:15:00" - this is in UTC.
Run Code Online (Sandbox Code Playgroud)

我想将其转换为不同的时区(在运行时确定),因此我尝试了如下所示的方法,但它始终显示相同的 UTC 值。

<ng-template kendoGridCellTemplate let-dataItem>
      {{ dataItem.returnedTime | date: 'hh:mm a' : 'IST' }}
    </ng-template>
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下方法:

<ng-template kendoGridCellTemplate let-dataItem>
      {{ dataItem.returnedTime | date: 'shortTime' : 'IST' }}
    </ng-template>

 <ng-template kendoGridCellTemplate let-dataItem>
      {{ dataItem.returnedTime | date: 'hh:mm a' : '+530' }}
    </ng-template>
Run Code Online (Sandbox Code Playgroud)

我预计会显示 2:45PM,但实际上显示的是 9:15AM。

这是怎么回事?

Mat*_*int 7

如果该值采用 UTC 格式,则其Z末尾应带有 ,如 中所示"2021-07-21T09:15:00Z"

根据ECMAScript 规范

...当 UTC 偏移量表示不存在时,仅日期形式将被解释为 UTC 时间,而日期时间形式将被解释为本地时间

将 a 附加Z到输入字符串(无论是在后端还是在收到它时),它应该可以正常工作。