in reply to Re: Time::Piece epoch parsing
in thread Time::Piece epoch parsing

strptime() interprets the input value as a local time. It then subtracts 3 hours to get the output GMT epoch value.

But why in the first place epoch interpreted as "local time"? Epoch is not about timezones. It cannot be local or GMT..

From man 7 strptime:

%s The number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). Leap seconds are not counted unless leap second support is available.

and number of seconds since specific moment of time is always same, independent of timezone

I found out that if you call strptime() as a Class method, instead of as an object method, GMT is assumed
Ok, behaviour differs. Great finding! thx

Replies are listed 'Best First'.
Re^3: Time::Piece epoch parsing
by Marshall (Canon) on Jul 04, 2016 at 01:10 UTC
    I have no idea why this thing does what it does. But my "reverse engineering" appears to be sound:
    (1415988000-1415998800)/60/60= -3 hrs Moscow time to GMT (1416027600-1415998800)/60/60= +8 hrs California time to GMT
    Almost all my work is done in GMT. I seldom convert to local time. This module appears to be pretty stupid about local time. I think there are much better modules for that task with better knowledge about time zones and daylight savings time. The good modules will even know about places that are 30 minutes instead of an hour off from the adjacent time zone.