[sf-perl] Timezone question

Joseph Brenner doom at kzsu.stanford.edu
Mon Aug 20 17:56:13 PDT 2012


Earl Ruby <earl at ruby.org> wrote:
> Does anyone know of a CPAN function that, when passed the name of a
> timezone from zoneinfo (e.g. "America/Los_Angeles") and whether or not
> daylight savings time is in effect will return the UTC offset in
> seconds?
>
> I've looked through CPAN and several modules look like they do this
> but don't. Either they don't work with the zones from zoneinfo or they
> won't give the offsets for standard and daylight time (only "current"
> time).

Have you looked at DateTime::TimeZone?

  http://search.cpan.org/~drolsky/DateTime-TimeZone-1.48/lib/DateTime/TimeZone.pm

You can use it like this to get the offset:

  use DateTime;
  use DateTime::TimeZone;

  my $tz = DateTime::TimeZone->new( name => 'America/Chicago' );

  my $dt = DateTime->now();
  my $offset = $tz->offset_for_datetime($dt);


And I would guess you could use "is_dst_for_datetime" to
determine if you're in daylight savings time.


More information about the SanFrancisco-pm mailing list