微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带时区的角度日期管道无法正确转换

我将一个 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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。