Angular 2 Date Deserialization

Ich habe eine Angular 2-Anwendung. Ein Dienst fordert Daten von einer API an, die die folgenden Ergebnisse zurückgibt:

{
    "data":[
        {"id":1,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.1","sourceDatabaseName":"Database1","targetDatabaseServer":"192.168.99.101","targetDatabaseName":"Database2"},
        {"id":2,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.2","sourceDatabaseName":"Database3","targetDatabaseServer":"192.168.99.102","targetDatabaseName":"Database4"},
        {"id":3,"timestamp":"2016-04-17T19:52:53.4510935+01:00","sourceDatabaseServer":"127.0.0.3","sourceDatabaseName":"Database5","targetDatabaseServer":"192.168.99.103","targetDatabaseName":"Database6"}
    ]
}

Mein Angular 2-Service sieht so aus (ich habe die Fehlerbehandlung der Kürze halber gekürzt, da wir hier auf einem guten Weg sind):

getList() : Observable<SomeModel[]> {
    return this._http.get(this._getListUrl).map(this.extractData);
}

 private extractData(res: Response) {
    return res.json().data || {};
}

und meine Komponente wie folgt:

results: SomeModel[];
errorMessage: string;
ngOnInit() {
    this._someService.getList()
        .subscribe(
        results => this.results = results, 
        error => this.errorMessage = <any>error);
}

und mein Modell wie folgt:

export class SomeModel {

    constructor(
        public id: number,
        public timestamp: Date,
        public sourceDatabaseServer: string,
        public sourceDatabaseName: string,
        public targetDatabaseServer: string,
        public targetDatabaseName: string
    ) { }
}

Alles sah so aus, als würde es funktionieren, als ich versuchte, den Zeitstempel mit der DatePipe wie folgt anzuzeigen{{item.timestamp | date:'short'}} Die Anwendung wird mit der folgenden Fehlermeldung gestartet:

Invalid argument '2016-04-17T19:40:38.2424240+01:00' for pipe 'DatePipe' in [{{result.timestamp | date:'short'}}

Nach einigen Nachforschungen glaube ich, dass der Zeitstempel nicht tatsächlich in das @ konvertiert wirDate Typ, sondern wird nur ein @ gesetstring. Ich vermute, das ist, weil dieDate type ist zur Zeit nicht bekanntResponse.json() wird genannt? oder vermisse ich etwas ganz anderes? Gibt es ein Update oder eine Problemumgehung dafür?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage