Timestamp class

ATimestamp represents a point in time independent of any time zone or calendar, represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time.

It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. It is encoded assuming all minutes are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.

For examples and further specifications, refer to theTimestamp definition.

Signature:

exportdeclareclassTimestamp

Constructors

ConstructorModifiersDescription
(constructor)(seconds, nanoseconds)Creates a new timestamp.

Properties

PropertyModifiersTypeDescription
nanosecondsnumberThe fractions of a second at nanosecond resolution.*
secondsnumberThe number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.

Methods

MethodModifiersDescription
fromDate(date)staticCreates a new timestamp from the given date.
fromJSON(json)staticBuilds aTimestamp instance from a JSON object created byTimestamp.toJSON().
fromMillis(milliseconds)staticCreates a new timestamp from the given number of milliseconds.
isEqual(other)Returns true if thisTimestamp is equal to the provided one.
now()staticCreates a new timestamp with the current date, with millisecond precision.
toDate()Converts aTimestamp to a JavaScriptDate object. This conversion causes a loss of precision sinceDate objects only support millisecond precision.
toJSON()Returns a JSON-serializable representation of thisTimestamp.
toMillis()Converts aTimestamp to a numeric timestamp (in milliseconds since epoch). This operation causes a loss of precision.
toString()Returns a textual representation of thisTimestamp.
valueOf()Converts this object to a primitive string, which allowsTimestamp objects to be compared using the>,<=,>= and> operators.

Timestamp.(constructor)

Creates a new timestamp.

Signature:

constructor(seconds:number,nanoseconds:number);

Parameters

ParameterTypeDescription
secondsnumberThe number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.
nanosecondsnumberThe non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanoseconds values that count forward in time. Must be from 0 to 999,999,999 inclusive.

Timestamp.nanoseconds

The fractions of a second at nanosecond resolution.*

Signature:

readonlynanoseconds:number;

Timestamp.seconds

The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.

Signature:

readonlyseconds:number;

Timestamp.fromDate()

Creates a new timestamp from the given date.

Signature:

staticfromDate(date:Date):Timestamp;

Parameters

ParameterTypeDescription
dateDateThe date to initialize theTimestamp from.

Returns:

Timestamp

A newTimestamp representing the same point in time as the given date.

Timestamp.fromJSON()

Builds aTimestamp instance from a JSON object created byTimestamp.toJSON().

Signature:

staticfromJSON(json:object):Timestamp;

Parameters

ParameterTypeDescription
jsonobject

Returns:

Timestamp

Timestamp.fromMillis()

Creates a new timestamp from the given number of milliseconds.

Signature:

staticfromMillis(milliseconds:number):Timestamp;

Parameters

ParameterTypeDescription
millisecondsnumberNumber of milliseconds since Unix epoch 1970-01-01T00:00:00Z.

Returns:

Timestamp

A newTimestamp representing the same point in time as the given number of milliseconds.

Timestamp.isEqual()

Returns true if thisTimestamp is equal to the provided one.

Signature:

isEqual(other:Timestamp):boolean;

Parameters

ParameterTypeDescription
otherTimestampTheTimestamp to compare against.

Returns:

boolean

true if thisTimestamp is equal to the provided one.

Timestamp.now()

Creates a new timestamp with the current date, with millisecond precision.

Signature:

staticnow():Timestamp;

Returns:

Timestamp

a new timestamp representing the current date.

Timestamp.toDate()

Converts aTimestamp to a JavaScriptDate object. This conversion causes a loss of precision sinceDate objects only support millisecond precision.

Signature:

toDate():Date;

Returns:

Date

JavaScriptDate object representing the same point in time as thisTimestamp, with millisecond precision.

Timestamp.toJSON()

Returns a JSON-serializable representation of thisTimestamp.

Signature:

toJSON():{seconds:number;nanoseconds:number;type:string;};

Returns:

{ seconds: number; nanoseconds: number; type: string; }

Timestamp.toMillis()

Converts aTimestamp to a numeric timestamp (in milliseconds since epoch). This operation causes a loss of precision.

Signature:

toMillis():number;

Returns:

number

The point in time corresponding to this timestamp, represented as the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.

Timestamp.toString()

Returns a textual representation of thisTimestamp.

Signature:

toString():string;

Returns:

string

Timestamp.valueOf()

Converts this object to a primitive string, which allowsTimestamp objects to be compared using the>,<=,>= and> operators.

Signature:

valueOf():string;

Returns:

string

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-06-30 UTC.