Skip to content
@swatchtime

Swatch Internet Time Revival

A collection of apps and services which display the Swatch Internet Time in .beats

Swatch Internet Time Revival

Welcome! 👋

This site is a fan-made revival and is not affiliated with or endorsed by Swatch Group. Meridian in Biel, Switzerland

Swatch Internet Time is a decimal time concept introduced by the Swatch corporation in 1998. It divides the day into 1,000 "beats" instead of hours, minutes, and seconds. Each beat is equivalent to 1 minute and 26.4 seconds. The day starts at midnight BMT (Biel Mean Time, UTC+1) with the number of beats at 000.00. Twenty three hours and 59 minutes later, the day ends at 999.99 beats. The photo shows the meridian for BMT which is located in Biel, Switzerland at the Swatch headquarters.

Beats are written with an @ sign in front of them. So, @567 is "567 beats". Beats can also be subdivided into a 100 centibeats and the time can be displayed as @567.78 for greater precision. After @567.99, the time changes to @568.00.

We think Swatch Internet Time was a good idea that was ahead of it's time. Back in 1998, people were still using slow dial-up modems and web and mobile applications didn't exist. Smartphones didn't come along for another 9 years. There were no smart watches or tablets. Back then, people went home and connected to the Internet on their desktop computer. The Internet wasn't ready for Swatch Internet Time in 1998.

Now, people live on the Internet 24/7/365. The Internet is always on and you have access to it wherever you go on a variety of devices. Having a global time-keeping standard that doesn't change based on time zones or daylight savings time (and is the same in all locations) is still a great idea! We are creating a collection of apps and tools which display Swatch Internet Time on a variety of devices and platforms including: web sites, desktops, mobile devices, smart watches, smart TVs, and much more!


Apps and Services:

Live Clocks:

Desktop Apps:

Webmasters:

Developers:


Screenshots

(Click to see full-sized image)

Main ClockBasic ClockDesklet for Linux
Swatch Internet Time APIAPI DemoEmbeddable web clocks

Technical Information


The Definition of Beats

Swatch Internet Time is expressed in "beats" (written as @nnn), where a day is divided into 1,000 equal parts.

Canonical definition used by this organization:

  • Reference zone: Biel Mean Time (BMT) defined as a fixed offset of UTC+1 (no daylight-saving adjustments).
  • One beat = 86.4 seconds (86.4 = 86400 / 1000).
  • Beats run from @000.00 at Biel midnight (00:00:00 UTC+1) through @999.99 just before the next Biel midnight.

Note on centibeat rounding

Implementations that display centibeats (two decimals) should take care to round then wrap, rather than wrapping then rounding. If you round a raw beat value like 999.995 directly it will display 1000.00 briefly; correct behavior is to round then normalize values >= 1000 back into range (e.g., subtract 1000) before formatting. Example:

letrounded=Math.round(rawBeats*100)/100;if(rounded>=1000)rounded-=1000;constout=rounded.toFixed(2);

Computation (pseudocode):

Integer beats (display @nnn):

// JavaScript-style pseudocode — integer beatsnow=newDate()utcSeconds=now.getUTCHours()*3600+now.getUTCMinutes()*60+now.getUTCSeconds()// convert to Biel time (UTC+1) and wrap into 0..86399bielSeconds=(utcSeconds+3600)%86400beat=Math.floor(bielSeconds/86.4)%1000display=`@${String(beat).padStart(3,'0')}`

Centibeats (display @nnn.nn) — safe rounding + wrap:

// JavaScript-style pseudocode — centibeats (safe)now=newDate()utcSeconds=now.getUTCHours()*3600+now.getUTCMinutes()*60+now.getUTCSeconds()// convert to Biel time (UTC+1) and wrap into 0..86399bielSeconds=(utcSeconds+3600)%86400rawBeats=bielSeconds/86.4rounded=Math.round(rawBeats*100)/100if(rounded>=1000)rounded-=1000display='@'+rounded.toFixed(2)

Examples (UTC timestamps -> beats):

  • 2025-01-01T00:00:00Z -> Biel 01:00:00 -> @041 (see note below)
  • 2025-01-01T23:00:00Z -> Biel 00:00:00 (next day) -> @000

Mathematical definition:

If you prefer a compact mathematical form, the canonical formula can be written as:

Beat calculation formula

Plain-text version:

beats = floor(seconds_since_Biel_midnight (UTC+1) / 86.4) % 1000

Rationale / decision on DST:

Historically there is ambiguity about whether to follow local Biel civil time (which observes DST) or to treat Biel as a fixed UTC+1 reference. To maximise interoperability, predictability, and simplicity for implementers, this project uses Biel as a fixed UTC+1 reference and does not apply daylight-saving adjustments. That means beats are stable across the year and do not jump when DST would otherwise change local civil time.

Note: small off-by-one differences may occur in example arithmetic if seconds are truncated or rounded differently. If you integrate with this organization's API or libraries, compute beats using the formula above so implementations are consistent.


Sample Code

We maintain a companion repository with runnable, single-file examples in many languages that implement the canonical Swatch beat calculation (UTC+1, no DST). The repo is intended for developers who want copy-pasteable snippets and quick verification vectors.

The sample-code repo contains one-file examples (JavaScript, Python, Go, Rust, C, C++, C#, Java, PHP, Bash, PowerShell, Haskell, Ruby, Swift, Kotlin, Lua, Elixir, and more) and a README with test vectors and run instructions.


Planned projects

Some apps and tools we plan to build and add to this organization:

  • Android and iPhone apps
  • Desktop applications on a variety of platforms
  • Desktop gadgets/widgets/desklets for multiple platforms
  • Smart watch (WearOS) app
  • Smart TV apps
  • Generic libraries to help others build Swatch Internet Time clocks

Other Implementations and Resources

Here are some other projects which have added support for Swatch Internet Time.

Contributing

This is a work in progress. Contributions, issues, and ideas are welcome. Feel free to start a thread in our Discussions forum if you have any questions or comments. If you're a developer familiar with GitHub, open issues or create pull requests in the appropriate repository, and we'll triage them as needed.

If you are here to report a bug related to the Swatch Time Cinnamon Desklet (for Linux Mint) please create a new issue here:


Contact Info




Disclaimer:

This fan site is an independent revival of Swatch Internet Time and is not affiliated with Swatch Group. Swatch® is a registered trademark of The Swatch Group LTD. You can visit the official Swatch web site here: https://www.swatch.com/

Pinned Loading

  1. swatch-vanillajsswatch-vanillajsPublic

    A simple plain vanilla Javascript PWA app which displays Swatch Internet Time in .beats

    JavaScript 1

  2. swatch-api-demoswatch-api-demoPublic

    Javascript demo for Swatch time API usage

    JavaScript

  3. cinnamon-deskletcinnamon-deskletPublic

    A Swatch Internet Time desklet for Cinnamon desktop on Linux Mint

    Python 2

  4. sample-codesample-codePublic

    Code examples in various languages which illustrate how to correctly calculate Swatch Internet Time beats

    Python

  5. swatch-clocks-demoswatch-clocks-demoPublic

    A demo app for the the Swatch Clocks library that showcases the various styles and allows you to customize parameters.

    HTML

  6. swatch-clocksswatch-clocksPublic

    A library you can use to insert Swatch Internet Time clocks into your own website or Javascript application.

    JavaScript

Repositories

Showing 10 of 10 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…