Day 29: It's All The Same Problem
We’re twenty-nine days into this. I’ve thrown twenty-eight different time problems at you. Sundials, cesium fountains, leap seconds, Unix epochs, DST, lunar time, the Y2038 bug, calendar drift, time zones in Nepal. Twenty-eight posts. Twenty-eight things that should not be problems but are.
Today I want to tell you the thing I’ve been quietly noticing the whole series and never once called out by name.
They’re all the same problem.
Every single one. Same pattern, twenty-eight times, wearing twenty-eight different outfits. I’m going to name it today. Then I’m going to do something annoying with the schedule, which I’ll get to at the end.
Speed recap (skip if you’ve been reading along)
Week 1, what time is. Philosophers spent a century arguing about whether the present is real or whether all moments coexist. Einstein answered them. Your brain disagrees with both. Your “now” is a two-second hallucination your prefrontal cortex glues together from inputs that arrived at different speeds. Most animals don’t even live on the same scale of now you do.
Week 2, how we measure it. Sundials to water clocks to pendulums to cesium fountains to optical lattice clocks. We measure time to a part in 10^18, the most precise measurement humanity makes of anything. And then we strap leap seconds onto it.
Week 3, how computers handle it. Unix time pretends leap seconds don’t exist. NTP synchronizes the internet to within a millisecond of UTC, mostly because one guy at the University of Delaware refused to let it die. ISO 8601 prevented an entire generation of date-format wars. Time zones aren’t 24, they’re 38 and counting, and at least one sits at +5:45 for reasons.
Week 4, the cracks. Leap seconds crashed Reddit and Cloudflare. DST kills people, measurably, twice a year. Calendars are 2,000 years of patches on patches. The World Calendar almost passed the UN in 1955 and got killed by religious objections. The Hanke-Henry proposal solves the religious problem and has no political mechanism.
Week 5, the punch line. Einstein made “now” frame-dependent. Atomic time and astronomical time have been quietly drifting apart since 1972. Clocks on the Moon run 58 microseconds per day faster than clocks on Earth, and the White House gave NASA a 2026 deadline to figure out what to do about it. Mars’s day is the wrong length, and the people running rovers there go nocturnal in shifts.
Twenty-eight different stories. Each one feels like its own little disaster. Each one is its own little disaster.
OK. Now look at all of them at once.
A pattern emerges
Every single one is the same shape.
Too many time systems pretending to be one.
That’s it. That’s the diagnosis. Let me run it back.
- Wall clock time pretends to be solar time. It isn’t. It’s solar time, offset up to an hour by your time zone, then offset another hour by DST. Three systems. Presented as one.
- UTC pretends to be a uniform atomic timescale. It isn’t. It’s atomic seconds with manual leap-second patches jammed in whenever the Earth misbehaves. Two systems. Presented as one.
- Unix time pretends to be UTC. It isn’t. It’s atomic seconds with the leap seconds quietly deleted. Two systems. Presented as one, with the inconvenient one erased.
- The Gregorian calendar pretends to track the seasons. It almost does. The seasons drift against it at 26 seconds a year. Two systems. Presented as one.
- Earth civil time pretends to be the universal frame. It isn’t. The moment people start living on the Moon it won’t even pretend. Two systems. Presented as one. Third one inbound.
Every outage we’ve documented in this series is what happens when the layers diverge.
The 2012 Linux meltdown was the atomic layer screaming at the civil layer through the leap-second seam. DST mortality is the social layer dragging the biological layer somewhere it doesn’t want to go. Y2038 is the storage layer running out of room to lie about the coordination layer. The 2019 Brazilian DST cancellation broke every calendar event saved in local time, because the saved-time layer disagreed with the rule layer.
It’s the same bug everytime, just dressed up in a different costume.
They’re all just one problem we keep meeting, just at different layers.
What the shape of a fix looks like
I’m not telling you the full answer today. But the shape of it appears when you can see the pattern. The key is to stop letting the layers pretend to be each other.
That’s the whole design I laid out yesterday: one coordination layer underneath, atomic, uniform, no leaps, no zones, no calendars baked in, the thing computers and GPS and finance and navigation already run on, with known relativistic offsets if you leave Earth. Then a thin civil layer on top for humans: local, day-night aware, with the calendar and zones living up here as display only. The civil layer is computed from the coordination layer plus your local context. It’s never stored as the source of truth.
The whole point is that the layers don’t pretend to be each other. The coordination layer doesn’t pretend to track the sun. The civil layer doesn’t pretend to be a database timestamp. When two layers disagree, only the display changes. The stored truth is invariant.
Some flags I’m planting
Before someone accuses me of refusing to commit, three things I’ll say flat out.
Time zones are stupid. Not “annoying.” Not “a useful tradeoff.” Stupid. Thirty-eight of them. One sits at +5:45 because someone wanted to be 15 minutes off from India. Half of Australia runs on a different schedule than the other half. Indiana spent decades arguing with itself about which zone to be in. China is one country and one time zone across five solar hours. The whole point of a time zone is supposed to be “the sun is roughly overhead at noon.” We’re not honoring that contract anywhere. Some American zones put solar noon as late as 1:30 PM in summer. We’re paying the entire complexity cost of having zones and not actually getting the thing zones were invented to do. Time zones are a 19th-century can we’ll keep kicking well into the 21st.
DST is dumb. Day 21 was the whole case. Heart attacks, strokes, car crashes, a 1% increase in residential electricity use, no farmers asking for it, no voters asking for it, no science defending it. We do it because two camps in Congress can’t agree on which fake time to settle on. Not relitigating. Just doubling down.
UTC is on “borrowed time” and it knows it. UTC the protocol is fine. UTC the way it shows up in your daily life has time zones bolted on through the “+5” notation, has DST schedules layered on top, and (currently) has leap seconds duct-taped in whenever the Earth misbehaves. UTC itself is a leaky abstraction. It tries to be the coordination layer and the civil layer at the same time, and the cracks have already begun to appear. Abolishing the leap second was UTC quietly admitting it can’t be both, and after 2035 the civil-display half of its job becomes somebody else’s problem.
Now the things I’m not claiming.
I’m not claiming any one proposed solution is right. Decimal time failed. Swatch Internet Time failed. The World Calendar failed. Hanke-Henry probably won’t pass. The path forward, whatever it ends up being, has to be designed with those failures in mind. Top-down reform fails. Branded reform fails. The thing that has actually worked, where anything has worked at all, is open standards adopted gradually by institutions that found them useful. The way ISO 8601 became universal without anyone forcing it on anybody.
And I’m not claiming this is a five-alarm fire. The system mostly works. The bugs are real but tolerable. Civilization will not collapse if we don’t fix this.
But it was built for an Earth-bound, slower, less precise world, and it’s being asked to do things it was never designed for.
Lunar Coordinated Time is due by the end of 2026. The system that mostly works is going to be asked to do more, and we are going to need a better one.
Tomorrow
OK, first, I need to apologize.
Day 30 would normally land tomorrow. That’s where you would typically end a series called “30 Days of Time”. But tomorrow I’m going to break that promise on purpose, and here’s why.
I’ve been working on something while writing this series. The whole reason this synthesis exists is that this pattern is the thing I’ve been trying to design a solution for. I have a draft of an answer. I have a reference implementation. What I don’t have is anything finalized that I can actually point you toward.
I’d rather get it right than ship Day 30 tomorrow with a half baked idea. I want the Day 30 payoff to be a well thought-out draft of a unified time standard, not a rushed sketch. I don’t know how long that takes. Probably a couple of weeks but maybe longer.
So Day 30 is coming, I promise. No specific date. When it lands, it’ll come with something formalized that’s actually worth pointing you at.
Thank you for sticking with me for twenty-nine days. Day 30 won’t be a manifesto. It’ll be informative, but it will also be a call to action.
So, the most important post in the series is NOT the one I’m not going to publish tomorrow.
I’d appreciate a follow. You can subscribe with your email below. The emails go out once a week, or you can find me on Mastodon at @[email protected].