in reply to time() off

time() returns epoch time, which would be the same (for your type of OS) all over the world. It has no idea about GMT. It's just a number, the number of seconds passed since a reference date, commonly 1.1.1970 at 0:00:00, GMT. That's a moment in time in history, expressed in GMT.

You're probably using gmtime() in your conversion to string, while you should be using localtime() instead.

my $time = 1094736647; print scalar gmtime($time); print "\n"; print scalar localtime($time);