Precision
Try in Playground →Nanoseconds, BigInt, DST detection, and leap seconds
Import
import { ... } from 'ts-time-utils/precision'; Examples
High-Precision Utilities
Nanosecond timestamps and advanced date handling
import {
createNanosecondTimestamp, nowNanoseconds,
toBigIntMs, ValidDate, isInDSTGap, leapSecondsBetween
} from 'ts-time-utils/precision';
// Nanosecond-precision timestamps
const ts = createNanosecondTimestamp(Date.now(), 500000);
console.log('Milliseconds:', ts.milliseconds);
console.log('Nanoseconds:', ts.nanoseconds);
console.log('Total (BigInt):', ts.totalNanoseconds);
// Current time in nanoseconds
const now = nowNanoseconds();
console.log('Now (ns):', now.totalNanoseconds);
// BigInt timestamps for large date ranges
const bigMs = toBigIntMs(new Date());
console.log('BigInt ms:', bigMs);
// Validated dates (never invalid)
const valid = ValidDate.from(new Date('2025-09-14'));
console.log('Valid date:', valid.toDate());
// Returns null for invalid dates
const maybe = ValidDate.tryFrom(new Date('invalid'));
console.log('Invalid date:', maybe); // null
// DST gap detection
// 2am doesn't exist on DST spring-forward day
const dstGap = new Date('2024-03-10T02:30:00');
console.log('Is in DST gap?', isInDSTGap(dstGap, 'America/New_York'));
// Leap seconds between dates
const date1 = new Date('2015-01-01');
const date2 = new Date('2025-01-01');
const leapSecs = leapSecondsBetween(date1, date2);
console.log(`Leap seconds between dates: ${leapSecs}`);