使用Angular 4,我们有一个日期,我们试图在我们的UI中显示。当我们从端点获取日期时,它会如下所示:
2018-04-03T00:00:00.000Z
现在,在用户界面中,只需执行以下操作:
activeRule.startDate
导致显示上述内容。
但是,当我尝试使用以下内容格式化该日期时:
{{activeRule.startDate | date : 'MMM d, y' : 'UTC' }}
规则显示前一天
Apr 2, 2018
我尝试添加时区值,但没有任何效果。 对我来说奇怪的是日期格式会改变检索到的值。有人可以提供见解和帮助吗?感谢。
我使用时刻框架解决了这个问题。
rule.startDate = moment(rule.startDate, 'YYYYMMDD').toISOString()
答案 0 :(得分:3)
默认情况下,Angular的日期管道将在浏览器的本地时区显示日期和时间。例如,如果您位于美国的东部时区,则2018-04-03T00:00:00.000Z
等于Mon Apr 02 2018 19:00:00 GMT-0500 (EDT)
。在Angular 5中,您可以通过传入时区来覆盖此行为:
{{activeRule.startDate | date : 'MMM d, y' : '+0000'}}