Max Campos schreef:
> It looks like Cairo changes its daylight savings at 11pm, causing
> truncate(to=> day) to fail on Apr 25, 2008. Is this by chance
> corrected in a newer version of DateTime? I'm using v.30
>
> If not, then I guess this really opens up a can of worms as to what
> "today" should do on this date.
>
> use DateTime;
> $x = DateTime->new(year => 2008, month => 4, day => 25, hour => 12,
> minute => 12);
> $x->set_time_zone('Africa/Cairo');
> $x->truncate(to => 'day');
> print "$x\n";
> -------------
> Invalid local time for date in time zone: Africa/Cairo
Maybe add a "safe => 1" (with new, add, subtract) such that the
following
don't die() anymore:
perl -MData::Dumper -MDateTime -e'
$dt = DateTime->new( safe =>1,
year => 2008, month => 3, day => 25, time_zone =>
"Africa/Cairo",
)->add(months => 1);
print Dumper($dt)
' |less
perl -MData::Dumper -MDateTime -e'
$dt = DateTime->new( safe => 1,
year => 2008, month => 4, day => 26, time_zone =>
"Africa/Cairo",
)->subtract(days => 1);
print Dumper($dt)
' |less
perl -MData::Dumper -MDateTime -e'
$dt = DateTime->new( safe => 1,
year => 2008, month => 4, day => 25, time_zone =>
"Africa/Cairo",
);
print Dumper($dt)
' |less
They should all return "2008-04-25 01:00:00" I suppose.
Somewhat related: Maybe also add a newdate() that carries no time
information.
--
Affijn, Ruud
"Gewoon is een tijger."