Zeitzonenprobleme

Begonnen von zweiundzwanzig, 09 Oktober 2022, 13:42:09

Vorheriges Thema - Nächstes Thema

zweiundzwanzig

Ich nutze mehrere Calendar Module, die ein durch eine externe webanwendung generiertes ics file importieren.
Leider ist die definition der Zeiten dort so :
DTSTART;TZID=UTC:20221009T094500
DTEND;TZID=UTC:20221009T113000

also in UTC.

Wenn ich "get MyCalendar events format:full" mache werden die Zeiten nicht korrekt umgerechnet,Im Moment löse ich das mit onCreateEvent {$e->{end}= $e->{end}+7200 ;; $e->{start}= $e->{start}+7200 ;; $e->{alarm}= $e->{start}-7200}
Also addiere ich auf den Start und das Ende die 2 Sunden Differenz zwischen UTC und lokaler Sommerzeit (und generiere dann noch unabhängg davon eine Alarmzeit).

Das finde ich nicht elegant weil ich das am 30. Oktober auf 1 Stunde ändern muss und im März zurück.

Geht das eleganter? Habe ich etwas übersehen?
2x MAX CuBe mit a-culf im Moritzbetrieb
1x MAX CuBe mit a-culf im Homematicbetrieb
60x MAX Heizkörperthermostat plus | 2x HM Schaltaktoren | 1x MAX Wandthermostat
1x FHEM Ubuntu Server auf VMWare
24 Räume, die durch ical Kalender geheizt werden

betateilchen


onCreateEvent {
my $nt = time;
my @lt = localtime($nt);
my $offset= _calctz($nt,@lt)*HOURSECONDS;
$e->{alarm}= $e->{start}; # durch das Vorziehen erspart man sich die Subtraktion des vorher zu {start} addierten Offsets ;)
$e->{start}= $e->{start}+$offset;
$e->{end}= $e->{end}+$offset;
}

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!