Determining daylight savings changes on BSD

Dan Nelson dnelson at allantgroup.com
Fri Feb 2 19:18:27 UTC 2007


In the last episode (Feb 02), Jerry McAllister said:
> On Fri, Feb 02, 2007 at 10:36:37AM -0600, Dan Nelson wrote:
> > In the last episode (Feb 02), Robert Fitzpatrick said:
> > > I use the following command on our CentOS Linux servers to find
> > > out if the system is ready for the daylight savings changes
> > > coming up, but it does not seem to work the same on our FreeBSD
> > > 5.4 and 6.1 servers. How can I do this? I see the zdump command
> > > and the man page seems to suggest the same usage, but...
> > > 
> > > esmtp# zdump -v US/Eastern | grep 2007
> > > esmtp# zdump -v US/Eastern
> > > US/Eastern  Fri Dec 13 20:45:52 1901 UTC = Fri Dec 13 20:45:52 1901 UTC isdst=0 gmtoff=0
> > > US/Eastern  Sat Dec 14 20:45:52 1901 UTC = Sat Dec 14 20:45:52 1901 UTC isdst=0 gmtoff=0
> > > US/Eastern  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 03:14:07 2038 UTC isdst=0 gmtoff=0
> > > US/Eastern  Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 03:14:07 2038 UTC isdst=0 gmtoff=0
> 
> I don't know how to read this.  There was another command I saw a while
> back that gave similar looking information, but actually put out something
> for 2007.   But, I can't find that mesage at the moment.
> 
> > That means you need to update your zoneinfo tables.  You can also use
> > the date command to see if you need updating:
> > 
> > date -r 1173679260
> > 
> > If that prints "Mon Mar 12 02:01:00 EST 2007" you know you need to
> > update.
> 
> Are you sure?   I see the EST where mine says EDT, but mine gives the
> exact same date/time information as you show above outside of the EST.
> 
> If I subtract out exactly one day (86400 seconds) I get:
>   Sun Mar 11 01:01:00 EST 2007    which is just 59 minutes before
> the changeover.
> 
> Then, if I add an hour (3600 seconds) I get:
>   Sun Mar 11 03:01:00 EDT 2007

So you're saying that for dates on March 11 after 2AM, you get EDT, but
on March 12 it's back to EST?  That doesn't make sense :)  I get:

$ TZ=America/New_York ; export TZ
$ date -r 1173592860
Sun Mar 11 01:01:00 EST 2007
$ date -r 1173596460
Sun Mar 11 03:01:00 EDT 2007
$ date -r 1173679260
Mon Mar 12 02:01:00 EDT 2007
$ 

> So, I would expect the non-updated system to give:
>   Mon Mar 12 01:01:00 EST 2007

Yes, that's what a system without the updated zoneinfo should print, I
think.
 
> Or is something else really messed up?
> My system seems to be giving the correct current date/time.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list