in reply to localtime on win32

You probably have the TZ environment variable set incorrectly.

If you have the "Automatically adjust clock for daylight saving changes" checkbox on the Timezones tab of the "Date and time properties" dialog (double click the time on the startbar) and you have TZ unset, localtime will give the correct result.

SET TZ=GMT or SET TZ=BST and it will be wrong.

SET TZ=GMT0BST and it will be correct.

(leastwise, that's what happens here!)

P:\test>set TZ= P:\test>perl -le"print ~~localtime" & time /T Tue Sep 14 10:49:05 2004 10:49 P:\test>set TZ=GMT P:\test>perl -le"print ~~localtime" & time /T Tue Sep 14 09:49:13 2004 10:49 P:\test>set TZ=BST P:\test>perl -le"print ~~localtime" & time /T Tue Sep 14 09:49:20 2004 10:49 P:\test>set TZ=GMT0BST P:\test>perl -le"print ~~localtime" & time /T Tue Sep 14 10:49:28 2004 10:49

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon

Replies are listed 'Best First'.
Re^2: localtime on win32
by arnonm (Initiate) on Sep 14, 2004 at 17:26 UTC
    Thanks :) That did it. Windows XP Home installation out of the box sets TZ to GST1GDT for a UK Installation. Without turning this into a Windows discussion, any idea why?

      Truthfully no. I've long since given up trying to figure out the "why's" behind such things, I just play with stuff till I get it to work:)

      The whole area of timezones seems to be pretty mixed up, even outside of MS doing everything their own way. I've no idea what GST and GDT stand for; maybe G... Summer Time and G... Daylightsaving Time?

      I thought that the 1 in the middle meant "add one hour" for that period of time when the second part of the string is in force, but empirically it appears to be the opposite?

      c:\>set TZ=GMT1GMT c:\>perl -le"print ~~localtime;" & time /t Tue Sep 14 17:44:24 2004 18:44 c:\>set TZ=GMT-1GMT c:\>perl -le"print ~~localtime;" & time /t Tue Sep 14 19:44:34 2004 18:44

      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "Think for yourself!" - Abigail
      "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon