Hi, I'm having some trouble understanding a few parameters in the TZ database - everybody knows that. I'm a developer, in the field of astronomy and celestial mechanics. But I encountered a problem relative to the relation between Local and UTC time in one of my applications. So, I picked up TZ, and tried to analize the cities pm files ( the code must be adapted, so I need the raw data ).
The long list is compreensible. The problem is the end. For example, for Europe/Lisbon: my $last_observance = bless( { 'format' => 'WE%sT', 'gmtoff' => '0:00', 'local_start_datetime' => bless( { 'formatter' => undef, 'local_rd_days' => 728749, 'local_rd_secs' => 7200, 'offset_modifier' => 0, 'rd_nanosecs' => 0, 'tz' => bless( { 'name' => 'floating', 'offset' => 0 }, 'DateTime::TimeZone::Floating' ), 'utc_rd_days' => 728749, 'utc_rd_secs' => 7200, 'utc_year' => 1997 }, 'DateTime' ), 'offset_from_std' => 0, 'offset_from_utc' => 0, 'until' => [], 'utc_start_datetime' => bless( { 'formatter' => undef, 'local_rd_days' => 728749, 'local_rd_secs' => 3600, 'offset_modifier' => 0, 'rd_nanosecs' => 0, 'tz' => bless( { 'name' => 'floating', 'offset' => 0 }, 'DateTime::TimeZone::Floating' ), 'utc_rd_days' => 728749, 'utc_rd_secs' => 3600, 'utc_year' => 1997 }, 'DateTime' ) }, 'DateTime::TimeZone::OlsonDB::Observance' ) ; sub _last_observance { $last_observance } my $rules = [ bless( { 'at' => '1:00u', 'from' => '1996', 'in' => 'Oct', 'letter' => '', 'name' => 'EU', 'offset_from_std' => 0, 'on' => 'lastSun', 'save' => '0', 'to' => 'max', 'type' => undef }, 'DateTime::TimeZone::OlsonDB::Rule' ), bless( { 'at' => '1:00u', 'from' => '1981', 'in' => 'Mar', 'letter' => 'S', 'name' => 'EU', 'offset_from_std' => 3600, 'on' => 'lastSun', 'save' => '1:00', 'to' => 'max', 'type' => undef }, 'DateTime::TimeZone::OlsonDB::Rule' ) ] ; The rules, are almost readable: for instance DST will start ( even if there's noreference to "start" ) in the last Sunday of March of any year equal or greater than 1981. But, at what time? The rule is: Continental Portugal > UTC+1 from the last Sunday in March at 01:00 to the last Sunday in October at 02:00 Europe/Lisbon How do we figure this from the above ? - that I don't understand ( I must be blind or tired... ); and other situations with other values occurr with different countries. Can someone explain me the calculations regarding every fields to get to the rule FROM THE PM CITY FILE ( this is important ! )? I would appreciate it very much - and it would save most of my time. Kind regards, Rui Miguel Fernandes Porto - Portugal