Subject: Re: bug#14210: 23.4; Timezone handling?

From: "Julio Pacheco T." <[email-masked]>
Date: Tue, 16 Apr 2013 10:40:08 -0300

Solved.

Just for completeness, the answer to your questions:
> Let's start with the basics: What does this print:
>
>     M-: (format-time-string "%H:%M %Z %z")

"09:01 CLT -0400"

>
> and how does the time it shows compare with your system clock?

On the console:
$ date +"%H:%M %Z %z"
09:02 CLT -0400

On the clock applet in the desktop:
10:02 America/Santiago

> Next, do you have a TZ variable in your environment, and if you do,
> what is its value?

There is no TZ variable defined in the environment.

Thanks to your hint, I've traced the actual problem to a stray 
/etc/localtime that somehow didn't get updated with the rest of the 
zonedata package.

Apparently, the desktop clock applet gets the timezone info directly from 
/usr/share/zoneinfo/*, while the command line utilities and Emacs use 
/etc/localtime first (checked with strace).

Regards,
Julio Pacheco

El 16/04/2013 3:01, Eli Zaretskii escribió:
>> Date: Mon, 15 Apr 2013 12:40:22 -0300
>> From: "Julio Pacheco T." <[email-masked]>
>>
>> Apparently, Emacs is ignoring the system timezone settings and using its
>> own definitions.
>
> Not really, no.
>
>> In Chile, the switch from daylight savings to standard time has been
>> postponed from March 10 00:00 to April 28 00:00, and the system tzdata
>> files have been properly updated; however, inside Emacs, the timezone is
>> reported as CLT instead of CLST:
>>
>> Output of zdump -v Chile/Continental | grep 2013
>> ------------------------------------------------
>> Chile/Continental  Sun Apr 28 02:59:59 2013 UTC = Sat Apr 27 23:59:59 2013
>> CLST isdst=1 gmtoff=-10800
>> Chile/Continental  Sun Apr 28 03:00:00 2013 UTC = Sat Apr 27 23:00:00 2013
>> CLT isdst=0 gmtoff=-14400
>> Chile/Continental  Sun Sep  8 03:59:59 2013 UTC = Sat Sep  7 23:59:59 2013
>> CLT isdst=0 gmtoff=-14400
>> Chile/Continental  Sun Sep  8 04:00:00 2013 UTC = Sun Sep  8 01:00:00 2013
>> CLST isdst=1 gmtoff=-10800
>>
>> Output of emacs Calendar/Lunar phases (note the switch CLST-> CLT in the
>> Mar 4 - Mar 11 interval, instead of Apr25 - May2):
>> ---------------------------------------
>> Monday, March 4, 2013: Last Quarter Moon 6:59pm (CLST)
>> Monday, March 11, 2013: New Moon 3:54pm (CLT)
>> Tuesday, March 19, 2013: First Quarter Moon 1:28pm (CLT)
>> Wednesday, March 27, 2013: Full Moon 5:26am (CLT)
>> Wednesday, April 3, 2013: Last Quarter Moon 12:43am (CLT)
>> Wednesday, April 10, 2013: New Moon 5:39am (CLT)
>> Thursday, April 18, 2013: First Quarter Moon 8:33am (CLT)
>> Thursday, April 25, 2013: Full Moon 3:55pm (CLT)
>> Thursday, May 2, 2013: Last Quarter Moon 7:21am (CLT)
>> Thursday, May 9, 2013: New Moon 8:32pm (CLT)
>> Saturday, May 18, 2013: First Quarter Moon 12:36am (CLT)
>> Saturday, May 25, 2013: Full Moon 12:22am (CLT)
>> Friday, May 31, 2013: Last Quarter Moon 3:05pm (CLT)
>>
>> Also, in org-mode the timestamps created by org-clock-in are off by -1
>> hour, so the discrepancies in timezone are not mode-specific.
>>
>> So, where is emacs actually getting the timezone info from?
>
>>>From your system, of course.  Although packages like Calendar might
> sometimes offer features that use some internal data (but not in this
> case, I think).
>
> Let's start with the basics: What does this print:
>
>     M-: (format-time-string "%H:%M %Z %z")
>
> and how does the time it shows compare with your system clock?
>
> Next, do you have a TZ variable in your environment, and if you do,
> what is its value?
>
>