Input in eine Transformation: Zeitstempel ohne Zeitzoneninformation, wobei sich der Zeitpunkt immer auf die deutsche Zeitzone bezieht
<Zeitpunkt>2020-10-02T22:00:00</Zeitpunkt>
Output soll ein “Unix-Timestamp” sein, der dem UTC Timestamp des übergebenen Timestamps entspricht.
In diesem Fall wäre das “1601668800”, da 2020-10-02T22:00:00 -> 2020-10-02T20:00:00 UTC entspricht.
An sich ist das Umwandeln kein Problem, dies erfolgt über folgende XSLT-Funktionskette:
“floor((fn:adjust-dateTime-to-timezone(xs:dateTime($Timestamp), xs:dayTimeDuration(‘PT2H’)) – xs:dateTime(‘1970-01-01T00:00:00’)) div xs:dayTimeDuration(‘PT1S’))”
Hier wandel ich den Timestamp-String in ein XSLT-dateTime um, ziehe fix 2 Stunden ab und wandel es in ein UNIX Date um. Allerdings möchte ich ja hier dynamisch auf die jeweilige Sommer/Winterzeit reagieren und muss dementsprechend evtl nur 1 Stunde abziehen. Ich habe bisher keine Möglichkeit gefunden dies über XSLT zu tun.
Wichtig ist hierbei anzumerken, dass es nicht ausreicht, die aktuelle Zeitzonen Differenz zu ermitteln, da wie in dem Beispiel auch rückwirkend Daten umgewandelt werden müssen.
Wie kann ich das ganze, am besten mit Transconnect/XSLT Bordmitteln umsetzen? Muss hier auf Java Funktionalitäten im XSLT zurückgegriffen werden?
Danke!