Ich habe eine Klasse, die ein Datumsfeld hat, das ein "Gültig von"-Datum für einen Teil der Daten darstellt. Es ist wie folgt definiert:
@Temporal( TemporalType.DATE )
private Date validFrom;
Alles scheint gut zu funktionieren, bis zu dem Punkt, an dem ich das Datum aus der Datenbank ziehe und es anzeige. Wenn ich das Datum 18-Sep-2003 im Frontend auswähle und es dann speichere, wenn ich in der Datenbank nachsehe, wird das Datum auch gehalten (Datenbank ist MySQL 5.5.9, Spaltentyp ist DATE). Wenn ich jedoch eine Liste von Datensätzen aufrufe, ist das angezeigte Datum der 17. September 2003 - ein Tag früher.
Wenn ich ein frühes oder spätes Datum im Jahr wähle, wie den 26. März 2003 oder den 25. Dezember 2003, ist alles in Ordnung, so dass ich vermute, dass dies etwas mit der Sommerzeit zu tun hat, aber wo schleicht sich der Fehler ein? Da die Datenbank das korrekte Datum zu enthalten scheint, vermute ich, dass es daran liegt, dass JPA zurück in ein java.util.Date konvertiert - ist java.util.Date die beste Klasse, die man für ein Datum verwenden kann? Ich habe ein paar Beispiele gesehen, wo Menschen Kalender verwenden, aber das scheint ziemlich schweres Gewicht und ich bin nicht sicher, wie gut es mit einem JSF-basierten Frontend funktionieren wird.