Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
<== Date ==> <== Thread ==>

Subject: Re: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows
From: Michael Davidsaver <mdavidsaver@gmail.com>
To: freddie.akeroyd@stfc.ac.uk, tech-talk@aps.anl.gov
Date: Mon, 19 Oct 2015 12:42:41 -0400
> ... should be honoured by the built-in localtime() function

I've make a quick attempt to do this which passes w/ mingw+wine.  Please pull and retest.


On 10/19/2015 12:17 PM, freddie.akeroyd@stfc.ac.uk wrote:
> Hi Michael,
> 
> test results enclosed for running on windows-x64, _tzset() is indeed ignored by epicsTime_localtime() (or rather by GetTimeZoneInformation()) but should be honoured by the built-in localtime() function
> 
> Regards,
> 
> Freddie
> 
>> -----Original Message-----
>> From: Michael Davidsaver [mailto:mdavidsaver@gmail.com]
>> Sent: 19 October 2015 14:59
>> To: Akeroyd, Freddie (STFC,RAL,ISIS); tech-talk@aps.anl.gov
>> Subject: Re: epicsTime_localtime() currently reports daylight saving time
>> incorrectly on Windows
>>
>> I've tried to create a test case for this.  Please run epicsTimeZoneTest in
>> src/libCom/test and report the results.
>>
>> git clone --branch tztest https://github.com/mdavidsaver/epics-base.git
>> cd epics-base
>> make -C src libCom/test
>> ./src/libCom/test/O.*/epicsTimeZoneTest.exe
>>
>> I've already found that _tzset() with WINE 1.6.2 doesn't seem to have any
>> effect, so the tests fail.
>>
>> On 10/19/2015 07:10 AM, freddie.akeroyd@stfc.ac.uk wrote:
>>> Hi,
>>>
>>> I've noticed that the "tm_isdst" member of the "struct tm" returned by the
>> Win32 implementation of epicsTime_localtime() is not currently reporting
>> DST status correctly. The problem is that though the StandardDate /
>> DaylightDate members of TIME_ZONE_INFORMATION are SYSTEMTIME
>> structures, they have slightly different interpretations of their contents than
>> usual in particular   wDay == 5  means "last occurrence of wDayOfWeek in
>> the month" rather than "5th day of month". One solution would be to use the
>> status returned by GetTimeZoneInformation() which now seems to include
>> the DST status, but I think the epicsTime_localtime() implementation could
>> actually be replace by something simpler like (give or take a NULL pointer
>> check):
>>>
>>> 	    memcpy(pTM, localtime(pAnsiTime), sizeof(struct tm));
>>>
>>> as on WIN32 the localtime() function uses thread local storage rather than
>> global static storage (though the same TLS is shared with gmtime() )
>>>
>>> Regards,
>>>
>>> Freddie
>>>
>>>

Replies:
RE: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd
References:
epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd
Re: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows Michael Davidsaver
RE: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd

Navigate by Date:
Prev: RE: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd
Next: Re: asyn timeout Pedro Gigoux
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
Navigate by Thread:
Prev: RE: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd
Next: RE: epicsTime_localtime() currently reports daylight saving time incorrectly on Windows freddie.akeroyd
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·