On Wed, Dec 4, 2013, at 11:08 PM, Zefram wrote: > Alfie John wrote: > > If it doesn't aim to have mappings to all of > >the Olson entries is there a reason not to provide mappings with my > >patches? > > Dave Rolsky can answer better about the design intent. But there's > a practical issue with changing right now: we're in the process of > transitioning to a reimplementation of DT:TZ. Current state is that the > new DT:TZ is ready, but DateTime has reacquired an over-sensitive test > (of a type we fixed one instance of some time ago) that looks at timezone > error messages and fails against the new DT:TZ.
No problem. I'll switch to DT::TZ::Olson for now until the new DT::TZ is out. Thanks for the heads up. > >looks like there's a bug (POSIX sign flipping which I've fixed in my > >patch to DateTime::TimeZone): > > I believe you're mistaken about the bug. (It seems to be a firm rule > that everyone working with timezones gets the sign wrong occasionally.) > Looking at your test case: > > print "$dt\n"; > > $dt->set_time_zone(olson_tz("Etc/GMT+10")); > > print $dt,"\n"; > > You've started with a DateTime in UT, and asked for it to be reexpressed > in the Etc/GMT+10 zone, which (due to the strange sign convention) is a > fixed ten hours *behind* UT. So I would expect the second time emitted > to be ten hours earlier than the first one, as seen in your > > >Actual output: > > > > 2013-12-03T23:39:11 > > 2013-12-03T13:39:11 Are you able to help fill the gaps in my understanding. This just confused me a bit... The current UTC is: $ perl -we 'use DateTime; print DateTime->now(),"\n"' 2013-12-04T22:01:08 I'm in Melbourne (Australia), which is 11 hour ahead of UTC (i.e. UTC+11): $ perl -we 'use DateTime; use DateTime::TimeZone::Olson qw{olson_tz}; print DateTime->now(time_zone => olson_tz("Australia/Melbourne")),"\n"' 2013-12-05T09:01:08 But here is what I get for Etc/GMT+11: $ perl -we 'use DateTime; use DateTime::TimeZone::Olson qw{olson_tz}; print DateTime->now(time_zone => olson_tz("Etc/GMT+11")),"\n"' 2013-12-04T11:01:08 And again for Etc/GMT-11: $ perl -we 'use DateTime; use DateTime::TimeZone::Olson qw{olson_tz}; print DateTime->now(time_zone => olson_tz("Etc/GMT-11")),"\n"' 2013-12-05T09:01:08 I guess it's a tautology seeing as that's what's defined in the etcetera file, but was I wrong in assuming that UTC+11 meant Etc/GMT+11? Alfie -- Alfie John alf...@fastmail.fm