Subject: Re: bug#13982: 24.2; Bug in function format-time-string when used under Windows

From: Eli Zaretskii <[email-masked]>
Date: Tue, 19 Mar 2013 22:58:04 +0200

> Date: Tue, 19 Mar 2013 22:08:25 +0200
> From: Bostjan Vilfan <[email-masked]>
> Cc: [email-masked]
> 
> On Tue, Mar 19, 2013 at 7:02 PM, Eli Zaretskii <[email-masked]> wrote:
> >> Date: Tue, 19 Mar 2013 12:56:30 +0200
> >> From: Bostjan Vilfan <[email-masked]>
> >> Cc: [email-masked]
> >>
> >> Hello, and thanks for your message. I did as per your instructions,
> >> and the value of
> >>
> >>  (format-time-string "%H:%M %z %Z")
> >>
> >> is "12:30 +0200 CDT" (actual local time was 11:30; so in other words
> >> emacs thinks local time is 1 hour ahead of actual local time)
> >>
> >> Your remark that all your Windows machines give the correct answer
> >> indicates that there must be some settings on my computer that is at
> >> fault; but I have no idea what that is.
> >
> > I don't think there's a Windows time zone whose name is "CDT".  Can
> > you check if you happen to have a TZ variable in the environment, and
> > if so, what's its value?  Please look both in the Computer's
> > Properties and in the command shell from which you invoke "emacs -Q".
> >
> TZ=CET-1CDT,3,-1,0,7200,10,-1,0,10800,3600

That's your problem, right there: unset that variable, and Emacs will
show the correct time.  The Windows runtime library includes
semi-broken support for setting TZ, but it only supports the
"CET-1CDT" part of the value, and so switches to daylight savings not
on the date that the rest of your value provides, but uses some
internal default dates.  See also this KB article:

  http://support.microsoft.com/kb/932590

> the reason I need TZ is that I still use the (quite old) RCS software.

There's a newer one here:

  http://sourceforge.net/projects/ezwinports/files/rcs-5.7-1-bin.zip/download

I use it all the time, and never needed any TZ setting.

> > Also, I asked you to tell which time zone do you see in the Date/Time
> > dialog of your Windows system.  Right-click on the time display in the
> > right corner of your task bar, and select "Adjust date/time".  In the
> > dialog that pops, click "Change timezone", and tell the name of your
> > current Windows time zone that is shown in the middle of the dialog.
> >
> > If the Windows time zone and the time zone given to Emacs are
> > different, you can have all kinds of "1 hour off" problems, especially
> > around daylight savings change date.
> >
> there is no abbreviation, just the following:
> 
> (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

This is what %Z should produce in Emacs.  And it will, after you unset
TZ in the environment.

> I hope I answered your specific questions above. There is one item
> that comes to mind, though, which I don't know whether it is evident
> in the data in my original error report, namely, that my system is
> 64-bit Windows 7. I also have a 32-bit Windows 7 installation, but
> currently I am unable to access it. As soon as I will be able to do
> so, I will check how emacs behaves there.

32-bit vs 64-bit is not a factor here.  The problems you have happen
because you have TZ set in the environment.