Google Cloud Spanner C++ Client  1.32.1
A C++ Client Library for Google Cloud Spanner
Public Member Functions | List of all members
google::cloud::spanner::v1::Timestamp Class Reference

A representation of the Spanner TIMESTAMP type: An instant in time. More...

#include <google/cloud/spanner/timestamp.h>

Public Member Functions

 Timestamp ()
 Default construction yields 1970-01-01T00:00:00Z. More...
 
Regular value type, supporting copy, assign, move.
 Timestamp (Timestamp &&)=default
 
Timestampoperator= (Timestamp &&)=default
 
 Timestamp (Timestamp const &)=default
 
Timestampoperator= (Timestamp const &)=default
 

Friends

Relational operators
bool operator== (Timestamp const &a, Timestamp const &b)
 
bool operator!= (Timestamp const &a, Timestamp const &b)
 
bool operator< (Timestamp const &a, Timestamp const &b)
 
bool operator<= (Timestamp const &a, Timestamp const &b)
 
bool operator>= (Timestamp const &a, Timestamp const &b)
 
bool operator> (Timestamp const &a, Timestamp const &b)
 

Output streaming

template<typename T >
StatusOr< T > get () const
 Convert the Timestamp to the user-specified template type. More...
 
std::ostream & operator<< (std::ostream &os, Timestamp ts)
 Convert the Timestamp to the user-specified template type. More...
 
StatusOr< TimestampMakeTimestamp (absl::Time)
 Construct a Timestamp from an absl::Time. More...
 

Detailed Description

A representation of the Spanner TIMESTAMP type: An instant in time.

A Timestamp represents an absolute point in time (i.e., is independent of any time zone), with at least nanosecond precision, and with a range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z, inclusive.

The MakeTimestamp(src) factory function(s) should be used to construct Timestamp values from standard representations of absolute time.

A Timestamp can be converted back to a standard representation using ts.get<T>().

See also
https://cloud.google.com/spanner/docs/data-types#timestamp_type

Definition at line 54 of file timestamp.h.

Constructor & Destructor Documentation

◆ Timestamp() [1/3]

google::cloud::spanner::v1::Timestamp::Timestamp ( )
inline

Default construction yields 1970-01-01T00:00:00Z.

Definition at line 57 of file timestamp.h.

◆ Timestamp() [2/3]

google::cloud::spanner::v1::Timestamp::Timestamp ( Timestamp &&  )
default

◆ Timestamp() [3/3]

google::cloud::spanner::v1::Timestamp::Timestamp ( Timestamp const &  )
default

Member Function Documentation

◆ get()

template<typename T >
StatusOr<T> google::cloud::spanner::v1::Timestamp::get ( ) const
inline

Convert the Timestamp to the user-specified template type.

Fails if *this cannot be represented as a T.

Supported destination types are:

  • absl::Time - Since absl::Time can represent all possible Timestamp values, get<absl::Time>() never returns an error.
  • google::protobuf::Timestamp - Never returns an error, but any sub-nanosecond precision will be lost.
  • google::cloud::spanner::sys_time<Duration> - Duration::rep may not be wider than std::int64_t, and Duration::period may be no more precise than std::nano.
Example
sys_time<std::chrono::nanoseconds> tp = ...;
Timestamp ts = MakeTimestamp(tp).value();
assert(tp == ts.get<sys_time<std::chrono::nanoseconds>>().value());
friend StatusOr< Timestamp > MakeTimestamp(absl::Time)
Construct a Timestamp from an absl::Time.
Definition: timestamp.cc:67
Timestamp()
Default construction yields 1970-01-01T00:00:00Z.
Definition: timestamp.h:57

Definition at line 114 of file timestamp.h.

◆ operator=() [1/2]

Timestamp& google::cloud::spanner::v1::Timestamp::operator= ( Timestamp &&  )
default

◆ operator=() [2/2]

Timestamp& google::cloud::spanner::v1::Timestamp::operator= ( Timestamp const &  )
default

Friends And Related Function Documentation

◆ MakeTimestamp

StatusOr<Timestamp> MakeTimestamp ( absl::Time  t)
friend

Construct a Timestamp from an absl::Time.

May produce out-of-range errors if the given time is beyond the range supported by Timestamp (see class comments above).

Definition at line 67 of file timestamp.cc.

◆ operator!=

bool operator!= ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 72 of file timestamp.h.

◆ operator<

bool operator< ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 75 of file timestamp.h.

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
Timestamp  ts 
)
friend

Convert the Timestamp to the user-specified template type.

Fails if *this cannot be represented as a T.

Supported destination types are:

  • absl::Time - Since absl::Time can represent all possible Timestamp values, get<absl::Time>() never returns an error.
  • google::protobuf::Timestamp - Never returns an error, but any sub-nanosecond precision will be lost.
  • google::cloud::spanner::sys_time<Duration> - Duration::rep may not be wider than std::int64_t, and Duration::period may be no more precise than std::nano.
Example
sys_time<std::chrono::nanoseconds> tp = ...;
Timestamp ts = MakeTimestamp(tp).value();
assert(tp == ts.get<sys_time<std::chrono::nanoseconds>>().value());

Definition at line 83 of file timestamp.cc.

◆ operator<=

bool operator<= ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 78 of file timestamp.h.

◆ operator==

bool operator== ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 69 of file timestamp.h.

◆ operator>

bool operator> ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 84 of file timestamp.h.

◆ operator>=

bool operator>= ( Timestamp const &  a,
Timestamp const &  b 
)
friend

Definition at line 81 of file timestamp.h.