What is nano-time?
The nano-time npm package provides high-resolution time stamps based on the Unix epoch. It allows for the generation of nanosecond precision time stamps, which are particularly useful in performance measurement, logging, and other scenarios where more granularity than milliseconds is required.
What are nano-time's main functionalities?
Getting the current time in nanoseconds
This feature allows you to get the current time in nanoseconds since the Unix epoch. It's useful for high-precision time measurements.
const nanoTime = require('nano-time');
let currentTime = nanoTime.now();
Converting a Date object to nanoseconds
This feature converts a JavaScript Date object to a nanosecond precision timestamp. It's useful for when you need to work with both standard JavaScript dates and high-resolution timestamps.
const nanoTime = require('nano-time');
let date = new Date();
let nanoSeconds = nanoTime.fromDate(date);
Other packages similar to nano-time
hrtime
The hrtime package offers high-resolution time measurements similar to nano-time, but it mimics the process.hrtime() method available in Node.js. Unlike nano-time, hrtime provides time in seconds and nanoseconds as a tuple, which can be more convenient for certain applications.
performance-now
This package provides a way to get high-resolution timestamps in milliseconds, similar to window.performance.now() in the browser. While it offers high precision, it's limited to millisecond resolution, making nano-time more suitable for applications requiring nanosecond precision.
NanoTime
Gets the current time in nanoseconds or microseconds.
In node.js you can get high resolution time with process.hrtime()
, but it is from an unknown relative time, not epoch. So this library helps that by calculating the difference and adding it to the current time.
Usage
Since javascript can't hold a nanosecond as an INT safely (Number.MAX_SAFE_INTEGER), we return a string instead.
const now = require('nano-time');
now();
now.micro();
now.microseconds();