This site is a fan-made revival and is not affiliated with or endorsed by Swatch Group.

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!
- About Swatch Internet Time: https://www.swatch.com/en-us/internet-time.html
- Wikipedia page: https://en.wikipedia.org/wiki/Swatch_Internet_Time
-
Main Clock: https://swatchtime.online
-
Basic Clock: https://kendawson.online/free/swatch/
- Cinnamon Desklet (Linux): https://github.com/swatchtime/cinnamon-desklet
-
Code examples for beat calculation: https://github.com/swatchtime/sample-code
-
API endpoint: https://api.swatchtime.online/api/v1/current
-
API demo: https://demo.swatchtime.online
-
Embeddable Javascript clocks: https://clocks.swatchtime.online/
-
Embeddable clocks library: https://www.npmjs.com/package/@swatchtime/clocks
(Click to see full-sized image)
|
|
|
|
|
|
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.00at Biel midnight (00:00:00 UTC+1) through@999.99just before the next Biel midnight.
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:
let rounded = Math.round(rawBeats * 100) / 100;
if (rounded >= 1000) rounded -= 1000;
const out = rounded.toFixed(2);Computation (pseudocode):
Integer beats (display @nnn):
// JavaScript-style pseudocode — integer beats
now = new Date()
utcSeconds = now.getUTCHours() * 3600 + now.getUTCMinutes() * 60 + now.getUTCSeconds()
// convert to Biel time (UTC+1) and wrap into 0..86399
bielSeconds = (utcSeconds + 3600) % 86400
beat = Math.floor(bielSeconds / 86.4) % 1000
display = `@${String(beat).padStart(3,'0')}`Centibeats (display @nnn.nn) — safe rounding + wrap:
// JavaScript-style pseudocode — centibeats (safe)
now = new Date()
utcSeconds = now.getUTCHours() * 3600 + now.getUTCMinutes() * 60 + now.getUTCSeconds()
// convert to Biel time (UTC+1) and wrap into 0..86399
bielSeconds = (utcSeconds + 3600) % 86400
rawBeats = bielSeconds / 86.4
rounded = Math.round(rawBeats * 100) / 100
if (rounded >= 1000) rounded -= 1000
display = '@' + 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
If you prefer a compact mathematical form, the canonical formula can be written as:
Plain-text version:
beats = floor(seconds_since_Biel_midnight (UTC+1) / 86.4) % 1000
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.
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.
- Repository: https://github.com/swatchtime/sample-code
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.
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
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:
- GitHub: https://github.com/kendawson-online
- Email: admin@swatchtime.online
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/






