Zebra Time
[ home ] [ code ] [ clock ]

Why is it o'clock? Because it is o'clock everywhere.

Clocks emerged locally, based on the position of the sun. Universal time, Greenwich Mean Time, was invented as we globalized and needed to label a shared moment unrelated to lunch. But Universal Time (UTC) relies on the same syntax as local time, making it unnatural to distinguish these different meanings to the question, what time is it?

means something to you. I'm guessing . Your local time is . If you happen to live in London that might be the same or an hour off. If you happen to live in Sydney it's going to be some 9 or 10 hours different.

We are inured to how complicated this is. "Is that your 2 o'clock or mine?" Meanwhile, nearly all computers everywhere agree that now is .

With Zebra Time you can develop a sense of :00 that is distinct from :00. Have lunch at 12:30 but schedule a call with Helsinki and Hanoi at K:30.

Mechanically, Zebra Time is UTC with a letter representing the hour rather than a number. That's useful for computer programmers, but somewhat irrelevant. Tell me it's o'clock, and I can agree with you. Tell me it's o'clock, and I have to ask where.


ZebraTime is open source from concept to code. It is a project to give people a simple language for universal time so we can dispense with the timezone date math.

This site and a basic ES6 module are available on github.com/mespr/zebratime and npmjs.com

npm i zebratime

<script type='module' src='zebratime.js'><script>

Invoke ZebraTime() to get an instance based on the current time or pass a date object as the first argument

let zebra = ZebraTime();
console.log("zebra time is "+zebra);
// zebra time is A:10
console.log("zebra time is "+zebra.precision("second"));
// zebra time is A:10:45
For a DOM element that presents the time and stays current, use timeElement.


This clock is handmade, built with a plastic disc and a 24 clock mechanism. The face was drawn with dry erase markers. I've made half a dozen and installed them various place.

The colors indicate the relative active time of people in the world's populous zones. It's not intended to be very accurate. It just gives a cue as to who might be up and about.

The face has evolved. Another version uses capital cities around the perimeter.

This is informative, but wants to be adjustable to choose cities and adapt for time zones. One could do it manually with an eraser and markers, but no one will do that. We need the SVG version.

The first analog clock was made with a paper plate and a reversed azimuthal map. Unless I flipped it as well, the zebra hours had to be offset by 12. Backwards and upside down was exceedingly confusing.

I also tried sticking a "sun" to the hour hand and flipping the letters so the current zebra hour meant noonish. This was all wrong as it drew the clock back into location, when simultaneity is the purpose

It also made it harder to map directly to computer time

This is a widget available in the ZebraTime module. It shows the up-and-about window as the day evolves. The letters are adjusted to roughly align with midday on the map.


This doesn't show where sunlight is. To do so one would need to adjust for the spin of the earth. The top of the map gets a small window of daylight in winter. But again, not the point. If you live in Greenland your work time is probably around F through M.