# nodejs-precise-date **Repository Path**: mirrors_googleapis/nodejs-precise-date ## Basic Information - **Project Name**: nodejs-precise-date - **Description**: A simple utility for precise-dateing functions and classes. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Google Cloud Platform logo # @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 be installed as a dependency when you install other `@google-cloud` packages. ```sh $ npm install --save @google-cloud/precise-date ``` ### Using the package `PreciseDate` extends the native `Date` object, so you can use it in place of that or when you need nanosecond precision. ```js const {PreciseDate} = require('@google-cloud/precise-date'); const date = new PreciseDate('1547253035381101032'); date.toISOString(); // => 2019-01-12T00:30:35.381101032Z date.toFullTimeString(); // => '1547253035381101032' ``` ## API ### PreciseDate([time]) Returns a new `date` instance. #### time Type: `string` [`BigInt`][big_int] `Object` `[number, number]` ```js // from a full ISO string date = new PreciseDate('2019-02-08T10:34:29.481145231Z'); // from a string representing nanoseconds date = new PreciseDate('1549622069481320032'); // from a BigInt representing nanoseconds (requires Node >= 10.7) date = new PreciseDate(1549622069481320032n); // from an object containing `seconds` and `nanos` values date = new PreciseDate({seconds: 1549622069, nanos: 481320032}); // from a tuple representing [seconds, nanos] date = new PreciseDate([1549622069, 481320032]); ``` #### PreciseDate.parseFull(time) Similar to [`Date.parse()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse), but this accepts the same nanosecond time options as the `PreciseDate` constructor and returns a string representing the nanoseconds in the specified date according to universal time. ```js PreciseDate.parseFull('2019-02-08T10:34:29.481145231Z'); // => '1549622069481145231' ``` #### PreciseDate.fullUTCString(...dateFields) Similar to [`Date.UTC()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/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` ```js PreciseDate.fullUTCString(2019, 1, 8, 10, 34, 29, 481, 145, 231); // => '1549622069481145231' ``` #### PreciseDate.fullUTC(...dateFields) Like `PreciseDate.fullUTCString()` but returns a native [`BigInt`][big_int] instead of a string. **Requires Node >= 10.7.** ##### dateFields Type: `...number` ```js PreciseDate.fullUTC(2019, 1, 8, 10, 34, 29, 481, 145, 231); // => 1549622069481145231n ``` ### date `PreciseDate` instance. #### date.getFullTimeString() Returns a string of the specified date represented in nanoseconds according to universal time. #### date.getFullTime() Like `date.getFullTimeString()` but returns a native [`BigInt`][big_int] 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: `number` `string` [`BigInt`][big_int] #### date.toStruct() Returns an object representing the specified date according to universal time. Refer to [`google.protobuf.Timestamp`](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#timestamp|google.protobuf.Timestamp) for more information about this format. ```js const {seconds, nanos} = date.toStruct(); ``` #### date.toTuple() Like `date.toStruct()` but returns the `seconds` and `nanos` as a tuple. ```js const [seconds, nanos] = date.toTuple(); ``` [big_int]: https://github.com/tc39/proposal-bigint ## Versioning This library follows [Semantic Versioning](http://semver.org/). ## Contributing Contributions welcome! See the [Contributing Guide](https://github.com/googlecloudplatform/google-cloud-node/blob/master/.github/CONTRIBUTING.md). ## License Apache Version 2.0 See [LICENSE](https://github.com/googlecloudplatform/google-cloud-node/blob/master/LICENSE)