Tomorrow I won't have to deal with it getting dark at a soul-crushing 5:30 pm. Nor will I have to wake up blearily an hour early in the spring. Instead I will be enjoying my new, custom time zone. It's "JEST", for "Joey's Eastern (non)Standard Time", and in JEST, there is no spring forward or fall back stress.

The folly of daylight savings time (Ben Franlin's best prank ever) really becomes apparent when you have solar power. It's bad enough that the sun is setting at 6:30 without compounding that by an hour. By keeping my clock set so the sun sets in midwinter at 6 pm, I will maximise what little light there is, and minimise time spent using batteries in the dark.

Of course, it helps that I'm my own boss, and that most of the people I work with are probably not in a nearby timezone anyway, and that most things are done asynchronously. Since JEST is an hour ahead of local time here in the winter, I will, at worst, tend to be running early.

So I only have to change my clocks one time -- and by "change", I mean create a custom timezone in Linux. Here's how to do that.

  1. Make a custom timezone file. The standard one for North America is a bewildering 3000 lines of special cases, conflicting legistlation, and historical weirdness, but I only need one:

    echo "Zone JEST -4:00 - JEST" > JEST.zone

  2. Compile and install it to somewhere; I put it in ~/.zoneinfo

    zic JEST.zone -d ~/.zoneinfo

  3. Set TZ to use it. Also TZDIR if it's not in the system directory.

    export TZDIR=~/.zoneinfo TZ=JEST

Update: Turns out it was easier than I thought, just setting TZ=FOO+4 will make date display a timezone "FOO" that is 4 hours behind GMT. So all I need is to set TZ=JEST+4

Result:

date: Sat Oct 30 21:43:39 JEST 2010
date -R: Sat, 30 Oct 2010 21:43:39 -0400

Previously:

Easier way
Couldn't you just set your time zone to Etc/GMT+4 for the same effect?
Comment by Chris
Odd,

So is not the statutory/standard TZ in your locale close (within an hour) to the Sun in the Winter ?

That's what happens here - there are occasionally evil mutterings to move us (UK residents) onto the central European time, so only in the summer do we match the sun. But given humans operate so much better in daylight - that seems - well wrong.

Comment by Roger
Awesome, but necessary?
Definitely an interesting approach. But I wonder, rather than changing your notion of the time of day to not match that of people around you, couldn't you just set your schedules and alarms to the times you'd prefer? Seems easier than having to effectively track two timezones: the one for your schedules and alarms and the one for interacting with other people and having a common notion of "what time is it?".
Comment by Josh
comment 4

@chris: Excellent point about GMT+4, but I don't like how date displays it:

TZ=GMT+4 date
Sat Nov  6 18:45:35 GMT 2010

That is highly confusing since I also sometimes need to refer to the real GMT. But JEST+4 both displays as its own zone and needs no custom zonefile, cool.

@Josh: Tried that, didn't work for me. I think there is a powerful psychological component to having certian numbers on the clock mean certian things, and it's particularly noticable when trying to get up in the morning. Actually, isn't that very effect what makes switching to DST cause people to actually wake up earlier?

@Roger Actually, here is slightly better than eg, New York City which in the same timezone, has the sun setting half an hour earlier. I believe that means it will set at 4:30pm for them tomorrow.

Comment by joey
Me too!
I'm going to do that too, except I'm going to call it Jonathan's Eastern Standard Time :)
Comment by jonathan
Minutes?
Does the offset have to be an integer number of minutes, or can you keep Mean Solar Time at your server's location to the second? (I suppose it's "convenient" to have the second hand straight up at the same time as The Man's atomic clock, but that way lies Soviet-style central planning.)
Comment by dmarti [myopenid.com]
comment 9

@joey: I meant "Etc/GMT+4", not "GMT+4":

campbell ~$ TZ=Etc/GMT+4 date
Mon Nov 8 00:58:06 GMT+4 2010

But the TZ=YourNameHere+# thing is a neat trick too.

Comment by Chris
comment 10
I wonder how much it will become a burden that the people around you (I mean physically, in your city, in stores etc) are in a different timezone then yourself
Comment by dieter