# JSF Kalendertool Datum und Uhrzeit addieren



## felix.pdm (14. Mrz 2011)

Hallo,
ich würde gern ein Datum und eine Uhrzeit addieren. Allerdings kommt da bei mir immer eine Stunde zu wenig dabei heraus.


```
Date startzeit = new Date();
long time = reportForm.getZeit().getTime(); 
startzeit.setTime(reportForm.getDatum().getTime() + time);
report.setStartzeit(startzeit);
```

time hat die richtige Studenanzahl, aber wenn ich das addiere kommt eine Stunde zu wenig raus. Ist das irgendein Zeitzonen/Sommerzeit-Problem?

Hoffe es kann jemand helfen. Danke


----------



## SlaterB (14. Mrz 2011)

Zeitzone + Sommerzeit dürften die richtigen Stichworte sein, ja,
jetzt im Winter liegt Deutschland MEZ eine Stunde hinter England GMT, im Sommer sogar zwei Stunden

was ist denn reportForm, wie kommen da die Zeiten rein? 
wenn mit SimpleDateFormat aus Text geparst, dann kann es helfen dort die Zeitzone einzustellen,

ansonsten z.B. eigene Korrekturstunden einbauen


----------



## felix.pdm (14. Mrz 2011)

reportForm ist die ManagedBean die die Zeiten aus einem JSF-Formular bekommt. Im Formular ist auch die Zeitzone definiert.
Da das ganze dann nur geprüft wird und in die Datanbank geschrieben wird, kann ich es auch nicht mit SimpleDateFormat formatieren.
Wie soll ich das mit der Korrekturstunde machen? Das würde ja dann in der Sommerzeit wieder falsche Zeiten ergeben oder nicht?


----------



## nrg (14. Mrz 2011)

vllt hilft die Methode:
TimeZone (Java Platform SE 6)


----------



## felix.pdm (14. Mrz 2011)

```
startzeit.setTime(reportForm.getDatum().getTime() + reportForm.getZeit().getTime());
Calendar gc = new GregorianCalendar(TimeZone.getTimeZone("CET"));
gc.setTimeInMillis(reportForm.getDatum().getTime() + reportForm.getZeit().getTime());
gc.setTimeZone(TimeZone.getTimeZone("CET"));
report.setStartzeit(gc.getTime());
```

Habs jetzt mal mit TimeZone und GregorianCalendar probiert. Leider mit dem gleichen Ergebnis.


----------



## nrg (14. Mrz 2011)

schau halt mit der Methode TimeZone#inDaylightTime ob Sommerzeit ist. Wenn ja nimmst du keine Korrektur vor, wenn nein addierst du eben eine Stunde (oder halt umgekehrt, je nach dem )


----------



## SlaterB (14. Mrz 2011)

wenn Sommer dann 2 Stunden, sonst eine,

wahrscheinlich gibt es aber zu ManagedBean auch offizielle Eisntellungen um sowas zu behandeln,
ist die Trennung in Datum + Uhrzeit überhaupt Standard oder hast du da irgendetwas gebastelt?


----------



## felix.pdm (14. Mrz 2011)

Ich habe ein Eingabefeld fürs Datum, das mit nem Kalendertool ausgewählt werden kann und ein Feld für die Uhrzeit.

Ich verstehe aber nicht warum ich in der Winterzeit eine Stunde addieren muss, obwohl ich CET eingestellt habe.


----------



## SlaterB (14. Mrz 2011)

dass CET nicht GMT ist habe ich ja schon geschrieben, ob das der Grund ist sei mal dahingestellt,

was ist eigentlich mit den beiden Bestandteilen der Addition einzeln, was ergeben die jeweils für sich,
ist nur in einem der beiden ein Fehler?

generell musst du aber wohl auf einen JSF-Experten warten der das auch einsetzt oder entsprechende Foren suchen,
habe jedenfalls schonmal den Titel angepasst


----------



## Andi_CH (15. Mrz 2011)

... und GMT ist nicht UTC. GMT ist Sommerzeit behaftet, UTC nicht


----------



## SlaterB (15. Mrz 2011)

ok, England hat also auch Sommerzeit,
dann werde ich in Zukunft diese genauere Darstellung weiterverbreiten


----------

