Angular 带时区的日期管道无法正确转换

Angular Date pipe with Timezone doesn't convert properly

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

"2021-07-21T09:15:00" - this is in UTC.

我想将其转换为不同的时区(在运行时确定),所以我尝试了类似下面的操作,但它始终显示相同的 UTC 值。

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

我也尝试了以下方法:

<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>

我希望它显示 2:45PM,而不是显示 9:15AM。

这里有什么问题吗?A

如果该值是 UTC 格式,它的末尾应该有一个 Z,如 "2021-07-21T09:15:00Z".

根据 ECMAScript spec:

... When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.

在您的后端或当您收到它时,将 Z 附加到输入字符串,它应该可以正常工作。