public final class Timestamps
extends java.lang.Object
protobuf/timestamp.proto
. All operations throw an
IllegalArgumentException
if the input(s) are not valid.Modifier and Type | Field and Description |
---|---|
static Timestamp |
EPOCH
A constant holding the
Timestamp of epoch time, 1970-01-01T00:00:00.000000000Z . |
static Timestamp |
MAX_VALUE
A constant holding the maximum valid
Timestamp , 9999-12-31T23:59:59.999999999Z . |
static Timestamp |
MIN_VALUE
A constant holding the minimum valid
Timestamp , 0001-01-01T00:00:00Z . |
Modifier and Type | Method and Description |
---|---|
static Timestamp |
add(Timestamp start,
Duration length)
Add a duration to a timestamp.
|
static Duration |
between(Timestamp from,
Timestamp to)
Calculate the difference between two timestamps.
|
static Timestamp |
checkValid(Timestamp.Builder timestampBuilder)
Builds the given builder and throws an
IllegalArgumentException if it is not valid. |
static Timestamp |
checkValid(Timestamp timestamp)
Throws an
IllegalArgumentException if the given Timestamp is not valid. |
static java.util.Comparator<Timestamp> |
comparator()
Returns a
Comparator for Timestamps which sorts in increasing
chronological order. |
static int |
compare(Timestamp x,
Timestamp y)
Compares two timestamps.
|
static Timestamp |
fromMicros(long microseconds)
Create a Timestamp from the number of microseconds elapsed from the epoch.
|
static Timestamp |
fromMillis(long milliseconds)
Create a Timestamp from the number of milliseconds elapsed from the epoch.
|
static Timestamp |
fromNanos(long nanoseconds)
Create a Timestamp from the number of nanoseconds elapsed from the epoch.
|
static Timestamp |
fromSeconds(long seconds)
Create a Timestamp from the number of seconds elapsed from the epoch.
|
static boolean |
isValid(long seconds,
int nanos)
Returns true if the given number of seconds and nanos is a valid
Timestamp . |
static boolean |
isValid(Timestamp timestamp)
Returns true if the given
Timestamp is valid. |
static Timestamp |
parse(java.lang.String value)
Parse from RFC 3339 date string to Timestamp.
|
static Timestamp |
subtract(Timestamp start,
Duration length)
Subtract a duration from a timestamp.
|
static long |
toMicros(Timestamp timestamp)
Convert a Timestamp to the number of microseconds elapsed from the epoch.
|
static long |
toMillis(Timestamp timestamp)
Convert a Timestamp to the number of milliseconds elapsed from the epoch.
|
static long |
toNanos(Timestamp timestamp)
Convert a Timestamp to the number of nanoseconds elapsed from the epoch.
|
static long |
toSeconds(Timestamp timestamp)
Convert a Timestamp to the number of seconds elapsed from the epoch.
|
static java.lang.String |
toString(Timestamp timestamp)
Convert Timestamp to RFC 3339 date string format.
|
public static final Timestamp MIN_VALUE
Timestamp
, 0001-01-01T00:00:00Z
.public static final Timestamp MAX_VALUE
Timestamp
, 9999-12-31T23:59:59.999999999Z
.public static java.util.Comparator<Timestamp> comparator()
Comparator
for Timestamps
which sorts in increasing
chronological order. Nulls and invalid Timestamps
are not allowed (see
isValid(com.google.protobuf.Timestamp)
). The returned comparator is serializable.public static int compare(Timestamp x, Timestamp y)
Timestamps.comparator().compare(x, y)
.0
if x == y
; a value less than 0
if x < y
;
and a value greater than 0
if x > y
public static boolean isValid(Timestamp timestamp)
Timestamp
is valid. The seconds
value must be in the
range [-62,135,596,800, +253,402,300,799] (i.e., between 0001-01-01T00:00:00Z and
9999-12-31T23:59:59Z). The nanos
value must be in the range [0, +999,999,999].
Note: Negative second values with fractional seconds must still have non-negative nanos values that count forward in time.
public static boolean isValid(long seconds, int nanos)
Timestamp
. The seconds
value must be in the range [-62,135,596,800, +253,402,300,799] (i.e., between
0001-01-01T00:00:00Z and 9999-12-31T23:59:59Z). The nanos
value must be in the range
[0, +999,999,999].
Note: Negative second values with fractional seconds must still have non-negative nanos values that count forward in time.
@CanIgnoreReturnValue public static Timestamp checkValid(Timestamp timestamp)
IllegalArgumentException
if the given Timestamp
is not valid.public static Timestamp checkValid(Timestamp.Builder timestampBuilder)
IllegalArgumentException
if it is not valid. See
checkValid(Timestamp)
.Timestamp
.public static java.lang.String toString(Timestamp timestamp)
Example of generated format: "1972-01-01T10:00:20.021Z"
java.lang.IllegalArgumentException
- if the given timestamp is not in the valid range.public static Timestamp parse(java.lang.String value) throws java.text.ParseException
toString(Timestamp)
and it also accepts any fractional digits (or none) and any offset as
long as they fit into nano-seconds precision.
Example of accepted format: "1972-01-01T10:00:20.021-05:00"
java.text.ParseException
- if parsing fails.public static Timestamp fromSeconds(long seconds)
public static long toSeconds(Timestamp timestamp)
The result will be rounded down to the nearest second. E.g., if the timestamp represents "1969-12-31T23:59:59.999999999Z", it will be rounded to -1 second.
public static Timestamp fromMillis(long milliseconds)
public static long toMillis(Timestamp timestamp)
The result will be rounded down to the nearest millisecond. E.g., if the timestamp represents "1969-12-31T23:59:59.999999999Z", it will be rounded to -1 millisecond.
public static Timestamp fromMicros(long microseconds)
public static long toMicros(Timestamp timestamp)
The result will be rounded down to the nearest microsecond. E.g., if the timestamp represents "1969-12-31T23:59:59.999999999Z", it will be rounded to -1 microsecond.
public static Timestamp fromNanos(long nanoseconds)
public static long toNanos(Timestamp timestamp)
public static Duration between(Timestamp from, Timestamp to)