Page 1 of 1

REST-Anbindung und DATE (PostgreSql)

PostPosted: Tue Apr 16, 2013 10:33 am
by alladinlb
Hallo,
bei der Verwendung der REST-Anbindung sind wir auf ein Problem gestoßen:

per Request holen wir uns aus einer View (PostgreSql) die notwendigen Daten. Der Response wird schön im JSON Format gesendet, jedoch haben wir Probleme mit dem PostgreSql-Typ: DATE

Die Werte der DATE-Spalten in der View (oder auch Tabelle) sind z.B.:

    15.04.2013
    09.12.2013

der Response liefert aber in den beiden angegebenen Beispielen folgendes:

    2013-04-14T22:00:00.000+0000
    2013-12-08T23:00:00.000+0000

Hierbei wird das Datum leider in die Greenwich Mean Time (GMT) umgewandelt, und somit werden bei Sommerzeit 2 Stunden und bei Winterzeit 1 Stunde abgezogen, was aber in diesem Fall fatal ist, da wir plötzlich ein falsches Datum haben.

Haben wir evtl. eine Einstellung in DBAccess oder DBStorage übersehen?

Grüße,
Lukasz

Re: REST-Anbindung und DATE (PostgreSql)

PostPosted: Tue Apr 16, 2013 11:07 am
by Support@SIB
Haben Sie überprüft ob die Daten von der DBStorage richtig gelesen wurden, z.B. via

Code: Select all
<dbstorage>.fetchBean

Re: REST-Anbindung und DATE (PostgreSql)

PostPosted: Tue Apr 16, 2013 11:16 am
by alladinlb
Ja, das haben wir schon überprüft. In den oben genannten Beispielen werden folgende Ergebnisse geliefert:

    2013-04-15 00:00:00.0
    2013-12-09 00:00:00.0

auch das Auslesen der Daten per JDBC liefert die richtigen Ergebnisse.

Re: REST-Anbindung und DATE (PostgreSql)

PostPosted: Tue Apr 16, 2013 11:55 am
by Support@SIB
Von JVx wird Restlet für die REST Services eingesetzt und Jackson für das JSON Format. Die Timestamps werden von Jackson mit folgendem Format erstellt:

Code: Select all
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"


Der Wert enspricht ISO-8601, siehe http://de.wikipedia.org/wiki/ISO_8601.

Die JVx Klassen DBAccess bzw. DBStorage liefern die richtigen Werte und toString() liefert die von Ihnen angeführte Darstellung für ihre lokale Timezone.