我对新的 Angular 2 Date Pipe。
有疑问我的日期值是;
let myDate = '2017-01-31T17:53:36'
我使用Date Pipe作为格式化程序在这个视图中显示;
{{myDate | date: 'dd/MM/yyyy HH:mm' }}
但它显示当地时间增加+3小时。
31/01/2017 20:53
我想说明确切的时间;
31/01/2017 17:53
我该怎么做?
答案 0 :(得分:2)
希望它会有所帮助: https://www.reddit.com/r/Angular2/comments/4so1j7/how_to_set_locale_for_datepipe/
这是一个管道,您可以在模板中使用它。基本上在我的情况下,我的webApi返回完整日期格式(即2015年12月15日星期二15:30:32 GMT-0500(东部标准时间))。所以在我的管道中我做了新的Date(值),它将从字符串中创建一个javascript Date对象。如果您从http调用返回的日期不包含任何本地化信息,那么解析的日期将与您当前时区中的日期一样。
答案 1 :(得分:0)
您可以扩展PipeTransform
并创建自己的UTCDatePipe
,然后覆盖transform
方法,并将第一个参数作为日期.UTC()
,然后应用给定的模式(作为transform方法中的第二个参数提供)并返回。
以下是DatePipe代码作为参考: https://github.com/angular/angular/blob/4.0.0-beta.2/modules/%40angular/common/src/pipes/date_pipe.ts
答案 2 :(得分:0)
此课程的方法将在2017年6月26日23:59:00'格式。
months:string[] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; getDateFormat(dateStr:string){ let dateObj = new Date(dateStr); let year = dateObj.getUTCFullYear(); let month = dateObj.getUTCMonth(); let date = dateObj.getUTCDate(); let time = dateObj.getUTCHours() + ':' + dateObj.getUTCMinutes() + ':' +dateObj.getUTCSeconds(); let displayDateTime = date + ' ' + this.months[month] + ' ' + year + ' ' + time; // console.log(displayDateTime); return displayDateTime; }
还可以通过编辑" displayDateTime'来更改格式。此方法返回的变量。