Hallo Klaus,
leider habe ich zum testen nur Active Perl und ich bin auch nicht so der Perls Freak.
Ganz verstanden habe ich das Programm nicht:
my $date = time;
Ist time die Zeit in GMT oder lokal? Unter Win ist sie lokal
my $isDst = (localtime($date))[8];
Ist isDst die Differenz zwischen lokal und GMT in Stunden?
Unter Win is isDst null.
my $finaledate = gmtime($date+3600*($isDst+1));
Angenommen date ist die lokale Zeit, dann addiere ich die Zeitverschiebung zur GMT und erhalte die GMT, dann addiere ich die Zeitverschiebung Deutschland-GMT zur GMT dann erhalte ich Deutsche Zeit in Sekunden. Um das wieder in Stunden und Tagen zu haben müßte ich jetzt doch localtime benutzen und nicht gmtime. Oder ist date die GMT? Woher weiß der Rechner die Zeitverschiebung zur GMT?
Anderer Vorschlag wäre das Folgende, erfordert allerdings das Modul Local:
usr Local;
$finaldate=localtime(timegm(gmtime(time))+3600*$Zeitverschiebung);
Kann die ganze Geschichte zur Zeit leider nur unter Win testen, und das macht nicht viel Sinn, da gmtime und localtime gleich sind.
Ludwig Weinzierl