tai64
v1.0.0
Published
TypeScript implementation of TAI64 timestamps for Node.js and the browser
Downloads
2,354
Readme
TAI64 ·
⏱️ TypeScript implementation of TAI64 timestamps for Node.js and the browser.
TAI refers to International Atomic Time (Temps Atomique International in French), the current international real-time standard. One TAI second is defined as the duration of
9192631770
periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium atom.
https://cr.yp.to/libtai/tai64.html#tai64
Getting started
Installation
npm install --save tai64
Usage
import { TAI64 } from "tai64";
const now = TAI64.now();
const moonLanding = TAI64.fromUnix(
Math.floor(Date.parse("July 20, 69 00:20:18 UTC") / 1000)
);
console.log("Current date: %s", now.toHexString());
console.log("🚀🌝 Moon Landing: %s", moonLanding.toHexString());
Implementation details
Immutability
A TAI64 instance is immutable by design and can’t be modified after it’s created.
Long dependency
In ECMAScript, a Number
is represented as a double-precision floating-point format number and the largest integer value that can be safely
represented is 2^53-1
. A TAI64 is an integer between 0
and 2^64
referring to a particular second of real time. For that reason, this project uses long.js as a dependency. In future versions, we will investigate if we have to get rid of this dependency and if the BigInt proposal can be used.
Further reading
Contributing
Contributions are welcome 👍
Use the links below to request a feature, file a bug or contribute some code!
- Issues: https://github.com/hl2/tai64/issues
- Pull requests: https://github.com/hl2/tai64/pulls
License
TAI64 is MIT Licensed.