@google-cloud/precise-date
A simple utility for precise-dateing functions and classes.
Installing the package
It's unlikely you will need to install this package directly, as it will beinstalled as a dependency when you install other@google-cloud packages.
$ npm install --save @google-cloud/precise-dateUsing the package
PreciseDate extends the nativeDate object, so you can use it in place ofthat or when you need nanosecond precision.
const {PreciseDate} = require('@google-cloud/precise-date');const date = newPreciseDate('1547253035381101032');date.toISOString();// => 2019-01-12T00:30:35.381101032Zdate.toFullTimeString();// => '1547253035381101032'API
PreciseDate([time])
Returns a newdate instance.
time
Type:stringBigIntObject<string, number>[number, number]
// from a full ISO stringdate = new PreciseDate('2019-02-08T10:34:29.481145231Z');// from a string representing nanosecondsdate = new PreciseDate('1549622069481320032');// from a BigInt representing nanoseconds (requires Node >= 10.7)date = new PreciseDate(1549622069481320032n);// from an object containing `seconds` and `nanos` valuesdate = new PreciseDate({seconds: 1549622069, nanos: 481320032});// from a tuple representing [seconds, nanos]date = new PreciseDate([1549622069, 481320032]);PreciseDate.parseFull(time)
Similar toDate.parse(), but this accepts the same nanosecond time options as thePreciseDate constructor and returns a string representing the nanoseconds in the specified date according to universal time.
PreciseDate.parseFull('2019-02-08T10:34:29.481145231Z');// => '1549622069481145231'PreciseDate.fullUTCString(...dateFields)
Similar toDate.UTC(), but also accepts microsecond and nanosecond parameters. Returns a string that represents the number of nanoseconds since January 1, 1970, 00:00:00 UTC.
dateFields
Type:...number
PreciseDate.fullUTCString(2019, 1, 8, 10, 34, 29, 481, 145, 231);// => '1549622069481145231'PreciseDate.fullUTC(...dateFields)
LikePreciseDate.fullUTCString() but returns a nativeBigInt instead of a string.Requires Node >= 10.7.
dateFields
Type:...number
PreciseDate.fullUTC(2019, 1, 8, 10, 34, 29, 481, 145, 231);// => 1549622069481145231ndate
PreciseDate instance.
date.getFullTimeString()
Returns a string of the specified date represented in nanoseconds according to universal time.
date.getFullTime()
Likedate.getFullTimeString() but returns a nativeBigInt instead of a string.Requires Node >= 10.7.
date.getMicroseconds()
Returns the microseconds in the specified date according to universal time.
date.getNanoseconds()
Returns the nanoseconds in the specified date according to universal time.
date.setMicroseconds(microseconds)
Sets the microseconds for a specified date according to universal time. Returns a string representing the nanoseconds in the specified date according to universal time.
microseconds
Type:number
date.setNanoseconds(nanoseconds)
Sets the nanoseconds for a specified date according to universal time. Returns a string representing the nanoseconds in the specified date according to universal time.
nanoseconds
Type:number
date.setFullTime(time)
Sets the time to the number of supplied nanoseconds since January 1, 1970, 00:00:00 UTC. Returns a string representing the nanoseconds in the specified date according to universal time (effectively, the value of the argument).
time
Type:numberstringBigInt
date.toStruct()
Returns an object representing the specified date according to universal time.Refer togoogle.protobuf.Timestamp for more information about this format.
const {seconds, nanos} = date.toStruct();date.toTuple()
Likedate.toStruct() but returns theseconds andnanos as a tuple.
const [seconds, nanos] = date.toTuple();Versioning
This library followsSemantic Versioning.
Contributing
Contributions welcome! See theContributing Guide.
License
Apache Version 2.0
SeeLICENSE
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-30 UTC.