Network Time Service

Network Time Service

Accurate and independent time sources are critical in computing at all levels.

88.io contributes to the global time infrastructure in multiple areas:

  1. Global Time Server
  2. Decimal Calendar
  3. Simple Time Zone

Global Time Servers

Satellite based time sources are controlled by too few parties while public time pools on the internet lacks provenance and are of widely variable qualities.

88.io has its own set of Network Time Protocol based global time sources (ntp.88.io) using traceable terrestrial atomic clocks from reliable sources worldwide.

This terrestrial Time Service makes use of our own Anycast Service for high performance and reliability.

Decimal Calendar

Internally 88.io uses an Unix Time based Decimal Calendar. Externally the standard Gregorian Calendar remains on all end user interfaces.

Using traditional UTC / GMT is verbose and confusing, especially when dealing with durations across time zones.

Unix Time is a simple number that allows everyone worldwide to communicate and calculate time without ambiguity. No more worry about daylight savings and leap years.

Unix Time UTC / GMT Sydney, Australia
1531418938 2018-07-12 18:08:58 2018-07-13 04:08:58
1631418938 2021-09-12 03:55:38 2021-09-12 13:55:38
1731418938 2024-11-12 13:42:18 2024-11-13 12:42:18

The simplicity of decimal Unix Time really shines when working with durations like half an hour, a day or a year across multiple time zones.

Decimal calendar Gregorian calendar
10 10 seconds
100 1.7 minutes
1,000 16.7 minutes
10,000 2.8 hours
100,000 1.2 days
1,000,000 11.6 days
10,000,000 3.9 months**
100,000,000 3.2 years**
1,000,000,000 32 years**
1,800 0.5 hour
86,400 1 day
31,536,000 365 days

** using 30 days in a month

Decimal Day

A Decimal Day has 100,000 seconds which is approximately 1.2 Gregorian days.

Like Unix Time, the Decimal Calendar (and thus the first Decimal Day) starts on 1 January 1970 at 00:00:00 UTC.

It is easy to spot a Decimal Day from any unix time value, the last 5 digits of the unix time are always 0 at the start of the day and always 99999 at the end of the day.

  • 1631400000 - 1631499999 (the 16314 day in the Decimal Calendar)
  • 1631500000 - 1631599999 (the 16315 day in the Decimal Calendar)

All sub-seconds belong to the previous second. So 1631499999.9999 is still day 16314.

A Decimal Day is used as the duration of Global Blocks in Virtual Vaccine, so events across time zones can be group together on the Fuzzy Blockchains for analysis. Everyone knows the duration covered by day 16314 no matter which time zone they are in.

Decimal Year

A Decimal Year that roughly correspond to a Gregorian year is defined as the duration between the start of the first Decimal Day in a Gregorian year to the start of the first Decimal Day of the following year.

Decimal Year Linux Time Duration Begin UTC End UTC
y21 1609500000-1640999999 2021-01-01 11:20:00 2022-01-01 01:19:59
y22 1641000000-1672599999 2022-01-01 01:20:00 2023-01-01 19:06:39
y23 1672600000-1704099999 2023-01-01 19:06:40 2024-01-01 09:06:39
y24 1704100000-1735699999 2024-01-01 09:06:40 2025-01-01 02:53:19
  • the "y" in front stands for year and must be included when specifying a Decimal Year.
  • the number behind is the Gregorian year minus 2000, so year 2100 will be written as y100.

So decimal year y21 is from decimal day 16095 to decimal day 16409 and decimal year y22 is from decimal day 16410 to decimal day 16259 etc.

  • All sub-seconds belong to the previous second. So 2022-01-01 01:19:59.9999 is still in y21.
  • When confusion is possible the words "Decimal Earth Year" and prefix "ye" should be used instead of just "Decimal Year" and "y".

Using Decimal Year is a great convenience but specifying the full duration is also supported e.g. 1609500000-1640999999 instead of y21.

Half Hour

It is easy to spot half hour intervals by looking at the last 3 digits of the unix time.

30 minute blocks (1800 seconds) will alway have the last 3 digits end in sequences of 800, 600,400, 200, 000 e.g. you can tell the unix timestamp 1631406800 is at the half-an-hour boundary by seeing that it has 800 at the end.

Simple Time Zone Format

We have designed a simple Time Zone format to be used to achieve universal compatibility across all computing applications and systems.

For example, usage in APIs in all encodings, Filenames across all file systems etc.

Standard Time Zones

Standard Time Zone Names have 2 parts (Area and Location) separated by the first / character in the name:

Area/Location
e.g.

  1. Asia/Hong_Kong
  2. America/Argentina/Buenos_Aires
  3. Etc/GMT+10

The are currently only 11 Areas:
Africa, America, Antarctica, Arctic, Asia, Atlantic, Australia, Etc, Europe, Indian, Pacific.

Simple Time Zones

To get the Simple Time Zone Format, the standard Time Zones Names are transformed in the following way:

  1. make all lowercase
  2. extract first 3 characters from the Area part (in front of first /)
  3. remove all NON a-z 0-9 characters from Location part (behind first /)
  4. concatenate the resulting Area and Location parts

For examples:

  1. "Asia/Hong_Kong" becomes "asihongkong"
  2. "America/Argentina/Buenos_Aires" becomes "ameargentinabuenosaires"
  3. "Etc/GMT+10" becomes "etcgmt10"

Simple Time Zone format does NOT support obscure non 2-part Time Zones (those without the / character).