Berechnen der Zeitzone mit Perl

Für manche Programmiersprachen muss die Zeitzone eingegeben werden, mit Perl kann man sie berechnen

Die Zeitzone drückt die Differenz zwischen localtime() und gmtime() aus. Wenn mit der Zeitzone gerechnet werden soll, muss sie in einer definierten Zeiteinheit vorliegen. Betrachte untenstehenden Code, welcher die Zeitzone in Sekunden berechnet:

# returnvalue in seconds
sub zeitzone{
    my $self = shift;
    my $lo = [localtime(12*3600)];
    my $raw = ($lo->[3]- 1) * 86400 + $lo->[2] * 3600 + $lo->[1] * 60 + $lo->[0];
    return $raw - 43200;
}

Alle Zeitzonen dieser Welt erstrecken sich von -12 (westliche Datumsgrenze) bis +13 Stunden bezogen auf UTC bzw. GMT. Zum Vereinfachen der Zeitzonenberechnung wird in obenstehender Funktion mit localtime(12*3600) gegenüber 1970-01-01 00:00:00 ein definierter Vorlauf geschaffen was die Berechnung vereinfacht. D.h., über alle möglichen Zeitzonen hinweg ändert sich mit diesem Vorlauf maximal der Tag, womit Jahr und Monat aus der Berechnung rausfallen.

Hinweis: In der Zeitzone ist DST (Sommerzeit) implizit enthalten. Aktuell auf diesem Server ist eine Zeitzone von GMT +1.00 Stunden (3600 Sekunden) eingestellt.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.