diff --git a/fhem/lib/FHEM/Utility/CTZ.pm b/fhem/lib/FHEM/Utility/CTZ.pm index 13854cb8d..7c87f864e 100644 --- a/fhem/lib/FHEM/Utility/CTZ.pm +++ b/fhem/lib/FHEM/Utility/CTZ.pm @@ -34,7 +34,7 @@ use strict; use warnings; use utf8; -# use lib qw(/opt/fhem/FHEM /opt/fhem/lib); # für Syntaxcheck mit: perl -c /opt/fhem/lib/FHEM/Utility/CTZ.pm + use lib qw(/opt/fhem/FHEM /opt/fhem/lib); # für Syntaxcheck mit: perl -c /opt/fhem/lib/FHEM/Utility/CTZ.pm use GPUtils qw( GP_Import GP_Export ); use DateTime; @@ -89,7 +89,10 @@ sub convertTimeZone { my $writelog = $paref->{writelog} // 0; my $ms = q{}; - if ($dtstring =~ m/\.(\d+)/xs) { # datetime enthält Millisekunden + return "no valid timezone $tzcurrent" if(!checkValidName($tzcurrent)); + return "no valid timezone $tzconv" if(!checkValidName($tzconv) ); + + if ($dtstring =~ m/\.(\d+)/xs) { # datetime enthält Millisekunden $ms = '.'.$1; } @@ -112,6 +115,14 @@ sub convertTimeZone { return ($err, $dtconv.$ms); } +sub checkValidName { + my $tz = shift; + + my $valid = DateTime::TimeZone->is_valid_name($tz); + +return $valid; +} + ############################################################################### # returns an array reference list of all possible time zone names ###############################################################################