On 05/23/2014 05:43 AM, Laine Stump wrote:
> man tzset:
>
> The second format is used when there is daylight saving time:
>
> std offset dst [offset],start[/time],end[/time]
Aha! And combining that with the "VIR" timezone idea that we're already
using, I've found that the following string *does* set DST:
TZ="VIR02:30VID,0,365"
That probably still has a window where running 'make check' on Dec 31
may fail; maybe using the time argument as in /23:59 will minimize the
window to one minute?
while the following *doesn't* (at least not today :-):
TZ="VIR02:30VID,300,365"
So I can add the former as a test case.
It's awkward testing for daylight savings cases if the test is dependent
on today's date; hopefully whatever you come up with is sufficiently
isolated that it doesn't introduce spurious failures on certain days of
the year.
Also, if I understand correctly, once you have a TZ with daylight
savings rules, the tm_isdst of struct tm can be set to negative to use
the TZ rules for determining if it is in effect, to 0 to force the
standard time (even if the current time is during dst) and to 1 to force
the daylight time (even if the current time is during std). (And that
this is true for tm_isdst, but NOT for the global 'daylight', which is
merely specified as positive year-round if TZ includes daylight rules).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org