1.0.0 • Published 5 years ago

tai64 v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

TAI64 · GitHub license Build Status Coverage Status

⏱️ 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!

License

TAI64 is MIT Licensed.