The epoch was an hour late

The epoch – midnight on 1st January 1970 – is one of the most important moments in computing. Many systems store dates and times as the number of seconds (or milliseconds) since the epoch. When new year’s revellers counted down the seconds before Big Ben struck twelve for the first time in a new decade, who would have known that the moment would be significant fifty years on?

Except, it didn’t. On the moment that is represented as zero in Unix, C, Java and so many other systems, Big Ben did not strike twelve. At midnight on the 1st January 1970, Big Ben struck one.

Timezones are important

The epoch was at midnight Coordinated Universal Time (UTC). The time shown on clocks around the world varies. Some South Pacific islands entered the epoch at 2PM on 1st January. At the same moment, islands on the other side of the International Date Line such as Hawaii and Tahiti still had 10 hours of the 1960s remaining.

Big Ben is in Westminster, London, around 5 miles from the Royal Observatory in Greenwich. That’s Greenwich as in Greenwich Mean Time (GMT) which is the basis for UTC. Greenwich Mean Time is UTC+0. So at midnight UTC, Big Ben should strike twelve.

Timezones are important in translating absolute time (UTC) to local clock time (GMT, CET, EST etc). Here in the United Kingdom though, we’re blessed with an easy calculation. GMT is UTC+0 so our clock time is usually the same as UTC.

Daylight savings are important

Many territories around the world including the UK, Central Europe and (most of) mainland United States (what makes you so special Arizona?) observe daylight saving (DST). In the summer we get an hour extra daylight in the evening at the expense of a later sunrise in the morning. Without DST, sunrise in Glasgow would be at 3:30AM in the height of summer so that seems a fair trade.

Usually winter is ‘standard’ time and summer is daylight saving time. So in the United Kingdom in the summer, our clocks are on British Summer Time (BST), one hour ahead of UTC.

Let’s state the obvious. Big Ben is in Westminster, London, England. Very much in the northern hemisphere. On the 1st January 1970, it’s winter. So it’s usually observing GMT/UTC.

Exceptions are important

If I check epochconverter.com from here in the UK (in December), it shows me this:

The epoch: GMT and my timezone

That’s a little odd. It shows my timezone as GMT+01:00 which it’s not. In the UK in December, our clocks are on UTC+0 / GMT.

Let’s try the same in Java (remember, I’m in the UK – my machine’s default locale shows results in GMT/BST timezone):

public static void main(String[] args) {
    Date date = new Date(0);
    System.out.println("The epoch is " + date);
}

$ The epoch is Thu Jan 01 01:00:00 GMT 1970

That’s also odd. It says that the epoch was at 01:00:00 GMT. epochconverter.com says it was at 00:00:00 GMT.

Lets check what the offset to UTC was at the epoch:

ZoneId zone = ZoneId.of("Europe/London");
Instant epoch = Instant.EPOCH;
ZonedDateTime epochInLondon = ZonedDateTime.ofInstant(epoch, zone);
Instant now = Instant.now();
ZonedDateTime december2020InLondon = ZonedDateTime.ofInstant(now, zone);

System.out.println("UTC offset at epoch: " + epochInLondon.getOffset());
System.out.println("UTC offset in December 2020: " + december2020InLondon.getOffset());

$ UTC offset at epoch: +01:00
$ UTC offset in December 2020: Z

London was 1 hour ahead of UTC in January 1970. Today the offset is 0 (showing as Z for Zulu).

The British Standard Time experiment

In 1968 the UK trialled year round daylight saving time. This trial lasted until 1971 and meant that London was permanently on BST (now renamed as British Standard Time) which was GMT+1. Due to this three year exception to the usual spring forward / fall back rule, Big Ben was not on UTC at the time of the Epoch.

At the dawn of the 1970s, few people realised the significance that computers would play in our lives in the decades to follow. When Big Ben struck twelve, revellers in Westminster were more likely thinking the future was in the recent Apollo moon landings than in ARPANET. When the computing age began one hour later though, most were already on their way home.

Leave a Reply

Your email address will not be published. Required fields are marked *