I ran this code myself and in my time zone, I get the following result:
What I don't understand is why Time::Piece doesn't know that currently Daylight Savings time is in effect? Right now, GMT is only 7 hours ahead of us instead of 8. I am on Windows and my clock in taskbar shows the right time (PSDT).use strict; use warnings; use Time::Piece; my $x = '1415998800'; my $t = Time::Piece->new(); print Time::Piece->VERSION, "\n"; $t = $t->strptime( $x, '%s' ); print "Input $x\n"; print "Output ".$t->epoch(), "\n"; print $t, "\n"; print $t->strftime, "\n"; print "daylight savings flag is:",$t->daylight_savings, "\n"; __END__ 1.30 Input 1415998800 <- interpreted as a local time Output 1416027600 <- 8 hours ahead of input Fri Nov 14 21:00:00 2014 Fri, 14 Nov 2014 21:00:00 Pacific Standard Time daylight savings flag is:0
Update: I found out that if you call strptime() as a Class method, instead of as an object method, GMT is assumed. Otherwise the object's timezone is used, i.e. changing:
produces:$t = $t->strptime( $x, '%s' ); ## to: $t = Time::Piece->strptime( $x, '%s' );
1.30 Input 1415998800 Output 1415998800 Fri Nov 14 21:00:00 2014 Fri, 14 Nov 2014 21:00:00 UTC daylight savings flag is:0
In reply to Re: Time::Piece epoch parsing
by Marshall
in thread Time::Piece epoch parsing
by vsespb
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |