In fixing the brokenness of the time zone code, I've come across what
appears to be an insoluble problem.

We want to allow people to create a DateTime object based on their _local_
time.  Internally, we want to have UTC time available, so we need to know
the offset for a given local time.  This is not a problem.

But what about a time like '2003-10-26 01:45:00' in the 'America/Chicago'
time zone (central time).  The problem with this is that absent more
information, we don't know if it's in CDT or CST, because one second after
'2003-10-26 01:59:59 CDT', the time is '2003-10-26 01:00:00 CST'.

So if a user does this:

  my $dt = DateTime->new( year => 2003, month => 10, day => 26,
                          hour => 1, minute => 45,
                          time_zone => 'America/Chicago', );

Then how do we properly calculate UTC from that?

I'd really hate to require users to give an _additional_ indicator of
whether or not this is or is not DST.

There's also the reverse problem when moving from CST to CDT, which is
that there is no such thing as '2003-04-06 02:15:00', in either CST or
CDT.  But what if a user tries to create such a thing?

Other than that, I think I have most of the time zone nuances worked out,
but this has me stumped.  Any ideas?  Has this been previously solved?


-dave

/*=======================
House Absolute Consulting
www.houseabsolute.com
=======================*/

Reply via email to