ich möchte gerne auf einfache Art und Weiße einen Ical Kalender von einer öffentlichen URL einlesen.
Hierzu nehme ich einen öffentlichen Kalender (siehe: https://www.officeholidays.com/subscribe/germany)
Naja, da hat das Ding nicht unrecht, das Datum ist irgendwie falsch:
Code:
20220602T05631Z
yyyyddMMTHHmm?Z
Nur eine einstellige Sekunde zu haben ist unueblich, sage ich mal, und die Minute "63" klingt jetzt auch nicht so richtig. Ich wuerde mal sagen dass die Datei Kacke ist. Kannst du der Seite als Fehler melden, denn soweit ich das sehe ist das einfach falsch.
Wenn du aber jetzt eine Loesung brauchst, wuerde ich die Datei vorher herunterladen, und dann das "CREATED" Feld einfach austauschen oder nachbearbeiten bevor man die Datei an ical4j uebergibt.
Naja, ich dachte hier gäbe es etwas standardisiertes?
Im Grund genommen möchte ich dem User die Möglichkeit geben jegliche ical Datei bei mir im System zu hinterlegen.
Anschließend wird diese eingelesen (Stream) und darauf basierend kann ich in meiner GUI dann eine Liste von diesen Daten (Termine) ausgeben...
Da muss es doch eine andere Lösung geben ist ja jetzt nicht unbedingt untypisch sowas
Also erstens, was Outlook macht ist mir suspekt. Ich musste mal Emails verarbeiten in einem Programm, und jedes mal wenn es eine "Problem-Email" gab, kam die von Outlook. Zweitens, natuerlich koennen die Programme das ignorieren oder nicht, oder anders verarbeiten, oder nicht, aber die iCalendar-Spezifikation sagt:
Damit ist ical4j im Recht, und die Datei nicht wohlgeformt.
Damit kann man jetzt entweder dafuer sorgen dass der Hersteller der Datei das aendert, und solange man darauf wartet, die Datei "vorverarbeiten" um das zu korrigieren.
vEvent.getStartDate().getDate() gibt dir ein Objekt, welches von java.util.Date erbt. Warum willst du es dann noch parsen, du kannst es ja direkt umwandeln.
Alternativ kann man auch mal https://github.com/mangstadt/biweekly ausprobieren. EDIT: Das habe ich gestern zufällig gefunden, weil ich was rausschreiben musste - wie es mit dem Parsen aussieht: keine Ahnung.
vEvent.getStartDate().getDate() gibt dir ein Objekt, welches von java.util.Date erbt. Warum willst du es dann noch parsen, du kannst es ja direkt umwandeln.