1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 <2007> 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 <2007> 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: 3.13.6 daylight-savings follies |
From: | Andrew Johnson <[email protected]> |
To: | "Laznovsky, Michael" <[email protected]> |
Cc: | [email protected] |
Date: | Mon, 05 Mar 2007 10:43:39 -0600 |
EPICS_TIMEZONE is not used in 3.13.6.
TS_MIN_WEST is initialized at compile time to 7*60=420 (US MST; ie. Chicago/FNAL), and then set to EPICS_TS_MIN_WEST at run time, if that's defined. Used by UTC<->local-time conversion routines in tsSubr.c, and thus also by things like timestampRecord.c (local "timestamp" DB records).
TIMEZONE is set in base/src/db/drvTS.c but not referenced anywhere else. If not already defined at iocInit(), it gets set to "UTC::<EPICS_TS_MIN_WEST>:040102:100102" (hard-coded). Appears not to be used for anything after that... perhaps by vxWorks? It does show up in "strings vxWorks" output.
As mentioned in http://www.aps.anl.gov/epics/tech-talk/2007/msg00063.php, there's no way to prevent the UTC<->local conversion functions from using the TS_DST_* #defines to add or subtract an hour on the OLD switch dates in April and October without modifying the code and recompiling base.
So, one option is to reboot on March 11 with TS_MIN_WEST set to "420" (one time zone over), and then again on April 1st with the old normal "480" value. Seems clumsy at best; what are other sites doing?
We need local time on IOC to be correct for timestamp records and the like; CA clients should be OK since that uses UTC... right?
- Andrew -- The right to be heard does not automatically include the right to be taken seriously. -- Hubert H. Humphrey