<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ccffff" text="#000000">
Madi,<br>
<br>
I do a lot of world time calculations. I would not use timezone codes
like est, cst or pst since they are not unique and do not give you
enough granularity for reliable date calculations.<br>
An example <span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'times new roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">is
CST: - Central Std Time (-6) North America ( some locations do not
observe DST )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - China Std Time (+8)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - Central Std Time (+9.5) Australia </span><span
 class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'times new roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">(
some locations do not observe DST )<br>
Also over time, the borders that define these timezones have
occasionally moved, take a look at Indiana, there are 8 different rules
based on the movement of Central and Eastern time definitions and
changing observance or non observance of DST.<br>
<br>
Especially if you need to do historical calculations, like in your
example, to do this accurately you need to use the Olson database.
There are reason's why there is a America/Toronto and America/Montreal
since historically they did not observe the same time rules (before
standard timezones, time was set to the real time of major cities train
station observed time) and they did not always observe DST or observe
at the same time.<br>
<br>
In perl use DateTime::TimeZone it will make your life a lot easier in
the long run. For lots of info go to datetime.perl.org<br>
<br>
Here is part of an example program I wrote, reading a file with some
locales ( eg. america/toronto) in it and calculating the current UTC
offset and writing them back out.<br>
<br>
===============<br>
#!/usr/bin/perl -w<br>
<br>
use DateTime;<br>
use DateTime::TimeZone;<br>
use Text::Delimited;<br>
<br>
## read in the timezones from the system and generate a text ile with
all current UTC offsets<br>
<br>
my $infile = 'timezone.db';<br>
my $outfile = 'timezone_out.db';<br>
<br>
my $file = new Text::Delimited;<br>
$file-&gt;Open($infile) or die print 'Cant open file';<br>
<br>
open (OUTFILE,"&gt; $outfile");<br>
print OUTFILE "Locale\tOffset\n";<br>
<br>
my @header = $file-&gt;Fields;<br>
<br>
while ( my $row = $file-&gt;Read ) {<br>
&nbsp; local ($tz,$offset);<br>
&nbsp; $tz = DateTime::TimeZone-&gt;new( name =&gt; $row-&gt;{Locale} );<br>
&nbsp; local ($tz,$offset);<br>
&nbsp; $tz = DateTime::TimeZone-&gt;new( name =&gt; $row-&gt;{Locale} );<br>
&nbsp; $utc = DateTime-&gt;now(time_zone=&gt;'UTC');<br>
&nbsp; $offset = $tz-&gt;offset_for_datetime($utc)/(60*60);<br>
&nbsp; print OUTFILE "$row-&gt;{Locale}\t$offset\n";<br>
}<br>
close OUTFILE;<br>
<br>
$file-&gt;Close;<br>
<br>
=============<br>
<br>
Hope this helps.<br>
<br>
Mike<br>
<br>
</span><br>
Madison Kelly wrote:
<blockquote cite="mid:48ED4231.9080605@alteeve.com" type="cite">Hi all,
  <br>
  <br>
&nbsp; I want to create a simple ... "library"? ... to provide data for a
simple method do say:
  <br>
  <br>
my $offset=&amp;get_tz_offset("est", "1998-06-15");
  <br>
  <br>
&nbsp; I've got the TZ data from: <a class="moz-txt-link-freetext" href="http://www.twinsun.com/tz/tz-link.htm">http://www.twinsun.com/tz/tz-link.htm</a>
  <br>
  <br>
&nbsp; It would need to be parsed though, and this I am hoping I can avoid
by downloading an existing parser (I am not too concerned how this
parser actually dumps data, I can hack that up). I just need something
like: "For TZ X in date Y, the offset is Z".
  <br>
  <br>
&nbsp; I am not sure if I will need the geographic data, as I am not trying
to determine what the TZ is, that's given to me. I just need the offset
for the given date.
  <br>
  <br>
Any suggestions? Should I start hacking up a parser myself? Do I ask
too many questions? :)
  <br>
  <br>
Madi
  <br>
  <br>
_______________________________________________
  <br>
toronto-pm mailing list
  <br>
<a class="moz-txt-link-abbreviated" href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a>
  <br>
<a class="moz-txt-link-freetext" href="http://mail.pm.org/mailman/listinfo/toronto-pm">http://mail.pm.org/mailman/listinfo/toronto-pm</a>
  <br>
  <br>
  <br>
</blockquote>
</body>
</html>