Different Time Systems + Conversions

Table of Contents

I've taken a bit of an interest in a Casio F91-W modification, a board replacement called the Sensor Watch. The board can be reprogrammed in many different ways to add several different modes the original watch did not have, creating a "not-quite-smart" watch that nonetheless can have a great deal of information that normal watches wouldn't - such as Nanosec calibration that automatically keeps the watch to within 10 seconds a year, displaying and/or logging local temperature, making calculations based on entered location data like the latitude or longitude of planets in the sky.

One thing I found especially interesting, though, is time systems - in particular, the Sensor Watch can display the time in other time systems or in other methods than the standard LCD screen. I think some of these are pretty clear and want to emulate them. First:

import time

current_uct_time = time.gmtime()
print(current_uct_time)

With that bit of unpleasantness out of the way, we can get on to what we're here for.

1. .beat time

The Swedish(?) watch company Swatch, for some unknown reason, decided it would be a good idea to make and promote a new timekeeping system that divides the day into 1000 minutes, numbered 000-999. Each minute is further divided into 100 seconds. This is called Swatch Internet Time. Swatch Internet Time, or .beat time, is the same all over the world and calculated from UTC+1. An example time would be 1:46:57AM, which would have .beat time @115.94.

Swatch time can be calculated with a simple formula from the time in UTC+1:

\[\lfloor \frac{3600h + 60m + s}{86.4} \rfloor\]

Thankfully, this is a very simple algorithm to implement:

import time

current_uct_time = time.gmtime()

beat_time = round((((current_uct_time[3]+1) % 24)*3600 + current_uct_time[4]*60+current_uct_time[5])/86.4,2)
print('@' + str(beat_time))
print(current_uct_time)

This can also be undone, provided a given .beat time we can convert it back into UTC+1:

current_beat_time = 165.65
seconds_into_day = current_beat_time * 86.4

hours = round(seconds_into_day // 3600)
minutes = round((seconds_into_day // 60)%60)
seconds = round(seconds_into_day % 60)
print(str(hours) + ':' + str(minutes) + ':' + str(seconds))

2. Decimal hours

The USPS actually measures its time through centihours, divisions of the hour into hundredths. This combined with the usage of 24-hour time, this creates a fairly distinctive method of timekeeping in the English speaking world.

An example of this is that the time 5:30PM would be in USPS time be represented by the four digits 1750, with the first two digits representing the hour and the last two digits representing the relevant centihour - 30 minutes being halfway through an hour is associated with the fraction .50. 5:45PM will similarly be represented by 1775.

import time

current_time = time.localtime()
print(current_time)

print('USPS Time: ' + str(current_time[3]) + str(round(round(current_time[4] / 60,2)*100)))

We can similarly decompose this time into standard local time.

usps_time = 1060

print(str(usps_time // 100) + ':' + str(round((usps_time % 100)/100*60)))

3. Stardate

The Star Trek franchise has its own unique timekeeping system, called stardate. Stardate is noticeably not universally consistent across all instances and usages, since it is fictional and primarily made to obscure when Star Trek actually takes place. In particular, stardate was significantly revised for The Next Generation from the original series. For more information on that front, see here.

The new J.J. Abrams Star Trek movies have a consistent Stardate system though, with the standard year and then the day of the year after the decimal point - so Stardate for December 31st, 2023 would be 2023.365. This is pretty easy to convert.

import time

current_time = time.localtime()
print(current_time)

print(time.strftime("%Y.%j",current_time))

4. A Brief Argument for 24-Hour Time

Not many people know this, but 12-hour time with an AM/PM designation is the default primarily in the English-speaking world. For the Windows operating system, 24-hour time is in fact the default, and only switches to 12-hour in the select few regions where 12-hour time is more common . I'd like to briefly argue, at the end of this page, for the usage of 24-hour time.

It's just easier. That's all it is. It's just an easier system. There is no ambiguity about day or night, morning or afternoon. I switched all my watches and other electrical devices to 24-hour time and I just like it better. It's like going to metric from US Customary. I recommend it to everyone. Only problem I have is I have to convert from what my watch says when people ask me what time it is. Switch to 24-hour time already.


Back to Math Hub
Back to homepage