REST-Anbindung und DATE (PostgreSql)

Allgemeine Fragen zur Entwicklung von und mit JVx.

REST-Anbindung und DATE (PostgreSql)

Postby alladinlb » Tue Apr 16, 2013 10:33 am

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
Last edited by alladinlb on Tue Apr 16, 2013 11:17 am, edited 1 time in total.
alladinlb
 
Posts: 2
Joined: Tue Apr 16, 2013 10:06 am

Re: REST-Anbindung und DATE (PostgreSql)

Postby Support@SIB » Tue Apr 16, 2013 11:07 am

Haben Sie überprüft ob die Daten von der DBStorage richtig gelesen wurden, z.B. via

Code: Select all
<dbstorage>.fetchBean
User avatar
Support@SIB
 
Posts: 198
Joined: Mon Sep 28, 2009 1:56 pm

Re: REST-Anbindung und DATE (PostgreSql)

Postby alladinlb » Tue Apr 16, 2013 11:16 am

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.
alladinlb
 
Posts: 2
Joined: Tue Apr 16, 2013 10:06 am

Re: REST-Anbindung und DATE (PostgreSql)

Postby Support@SIB » Tue Apr 16, 2013 11:55 am

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.
User avatar
Support@SIB
 
Posts: 198
Joined: Mon Sep 28, 2009 1:56 pm


Return to Entwicklung