I've just tried to use a simple date
pipe in my angular2 app:
Registered: {{user.registered | date:'shortDate'}}
The error I get is:
Invalid argument '2016-03-28T07:25:40.824Z' for pipe 'DatePipe' in [{{user && user.registered | date:'shortDate' }} in UserDialog@16:57]
I do have a User model (minimal here) shared between this component and some others:
export class User { public registered: Date; }
I get the user data as JSON from backend, and it's a ISO 8601: 2016-03-28T07:26:01.202Z
.
When I use my own custom pipe, it works (example bellow).
import {Pipe, PipeTransform} from 'angular2/core';
/**
* The default ISO Date is not parseable by ts compiler or some such.
*/
@Pipe({ name: 'betterDate' })
export class BetterDatePipe implements PipeTransform {
transform(date: number): string {
let d = new Date(date);
return d.toLocaleDateString();
}
}
The name, BetterDatePipe is obviously a pun at me writing better angular2 code then the inventors ;)