Is there a way to see if DST is in effect on a returned time zone object ? For instance, i have got a loop like this:
my @list = DateTime::TimeZone->all_names; foreach $zone (@list) { next unless ($zone =~ /\//); # skip timezone links in the list $dt = DateTime->now(); # current computer time $tz = DateTime::TimeZone->new( name => $zone ); # timezone $offset = $tz->offset_for_datetime($dt); # offset from UTC for this timezone $TZ = $tz->short_name_for_datetime($dt); # timezone name (e.g. CET) $dt->add(seconds => $offset); # convert computer time to time in timezone $hoffset = $offset / 3600; # offset in hours printf "%40s\t%s\tGMT diff = %g\t%4s\t",$zone,$TZ, $hoffset,$DST; printf "%d/%02d/%02d %02d:%02d\n",$dt->year,$dt->month,$dt->day,$dt->hour,$dt->minute; } How can i see for each zone displayed if it is in DST? The only way i could think of is add an offset of half a year to the timezone and compare the time's, but that seems a bit overdone since the info is there somewhere allready. thanks for your help. Ewald... On Wed, Mar 12, 2008 at 04:54:07PM -0500, Dave Rolsky wrote: > On Thu, 13 Mar 2008, Rick Measham wrote: > > >William Heath wrote: > >>I think I figured it out, what is important to understand is that you > >>can't choose EST, you must choose a country/city for the function to > >>adjust for DST automatically. My question was probably too simple for > >>you to give me this solution but I did figure it out. Does that make > >>sense to you? > > > >Absolutely. The time zones supported by DateTime are designed to be > >robust, not only for today but back to 1970. > > Actually, most of the them go back quite a bit further, to the 1910s or > so, or whenever the country in question started using time zones, which > obviously varies from place to place. > > It even tries to go back earlier by defining a LMT (local mean time, I > believe) rule that applies for all times before the first real time zone. > This isn't so useful, though because the LMT for America/Chicago is really > for Chicago only (and anything along the same longitude line), and doesn't > apply to other cities in the same time zone (like Minneapolis). > > > -dave > > /*========================== > VegGuide.Org > Your guide to all that's veg > ==========================*/ -- http://www.oiepoie.nl ## Your mind-mint is: The distinction between Freedom and Liberty is not accurately known; naturalists have been unable to find a living specimen of either. -- Ambrose Bierce