Java Ical4j dtStart ohne Uhrzeit aus Timestamp

furryhamster

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.101
Hi,

Ich habe zwei Timestamps (GMT +0), die den Start und Endzeitpunkt eines vEvents darstellen. Bei dem vEvent handelt es sich um ein Ganztagsevent und die Uhrzeit der Timestamps steht deshalb auf 0:00 Uhr (GMT +1).

Jetzt will ich daraus ein dtStart und dtEnd Property erstellen.

Meine bisherigen Versuche sahen so aus, dass ich aus den Timestamps ein DateTime erzeugt habe und als TimeZone "Europe/Berlin" zugewiesen habe. Das Kalenderevent hat jetzt schonmal das richtige Datum. Das ganze wird im System allerdings nicht als Ganztagsevent erkannt, da eine Uhrzeit mitgeliefert (DTSTART:20141214T230000) wird und nicht z. B. DTSTART:VALUE=DATE:20141215

Wie kriege ich jetzt aus dem DateTime ein Date ohne Uhrzeit in GMT +1 bzw. wie erkennt der Kalender das jetzt als GanzTagEvent?
 
Ich empfehle dir die jodaTime Lib für Datums/Zeitgeschichten zu verwenden.
Auf Basis dieser Lib entstand für Java 8 die neuen Date/Time Lib.

Der Vorteil liegt in der intuitiveren und korrekteren Arbeit mit der Zeit. :)
 
Danke für deine Rückmeldung.
Mir ist jedoch noch nicht ganz klar wie das gehen soll. Das dtStart erwartet ja eine Date vom Typ net.fortuna.ical4j.model.Date und dem kann ich dann doch nicht einfach ein Date der jodaTime Lib mitgeben sondern muss doch auch hier einen Constructor des ical Dates verwenden. Der TimeStamp ändert sich ja nicht und ist immer GMT +0 oder?
 
Das Beispiel habe ich mir auch schon mal angeschaut um das Format rauszufinden. Wie die das Date empfinde ich aber als äußerst "seltsam". Warum weisen die dem Kalender ein Date zu und nicht dem Event direkt? Außerdem dürfte auf diese weise keine mehrtägigen Ganztagsevents möglich sein, da die ja quasi nur eine Art Startdate setzen. Ein Endedatum gibt die java.util Bibliothek anscheinend nicht her.

Zu einer Hilfsklasse zur Dateerzeugung im ical4j Format habe ich leider noch nichts gefunden.

Im Notfall kann ich mein DateTime immer noch in einen String umwandeln, die Uhrzeit abschneiden und damit ein Date erzeugen. Schön ist aber anders.
 

Ähnliche Themen

Zurück
Oben