Quick Links:

bal | bbl | bdl | bsl

Public Member Functions | Static Public Member Functions

bdlt::DatetimeTz Class Reference

#include <bdlt_datetimetz.h>

List of all members.

Public Member Functions

 DatetimeTz ()
 DatetimeTz (const Datetime &localDatetime, int offset)
 DatetimeTz (const DatetimeTz &original)
 ~DatetimeTz ()
DatetimeTzoperator= (const DatetimeTz &rhs)
void setDatetimeTz (const Datetime &localDatetime, int offset)
int setDatetimeTzIfValid (const Datetime &localDatetime, int offset)
template<class STREAM >
STREAM & bdexStreamIn (STREAM &stream, int version)
DateTz dateTz () const
Datetime localDatetime () const
int offset () const
TimeTz timeTz () const
Datetime utcDatetime () const
template<class STREAM >
STREAM & bdexStreamOut (STREAM &stream, int version) const
bsl::ostream & print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Datetime gmtDatetime () const
int validateAndSetDatetimeTz (const Datetime &localDatetime, int offset)

Static Public Member Functions

static bool isValid (const Datetime &localDatetime, int offset)
static int maxSupportedBdexVersion (int versionSelector)
static int maxSupportedBdexVersion ()

Detailed Description

This value-semantic class describes a datetime value in a particular time zone, which is indicated using an offset from UTC (in minutes).

See Component bdlt_datetimetz


Constructor & Destructor Documentation

bdlt::DatetimeTz::DatetimeTz (  ) 

Create a DatetimeTz object having the (default) attribute values:

bdlt::DatetimeTz::DatetimeTz ( const Datetime localDatetime,
int  offset 
)

Create a DatetimeTz object having a local datetime value equal to the specified localDatetime and a time zone offset value from UTC equal to the specified offset (in minutes). The behavior is undefined unless all of the specified values are within their valid ranges (see isValid). Note that this method provides no validation, and it is the user's responsibility to ensure that offset represents a valid time zone and that localDatetime represents a valid datetime in that time zone.

bdlt::DatetimeTz::DatetimeTz ( const DatetimeTz original  ) 

Create a DatetimeTz object having the same value as the specified original object.

bdlt::DatetimeTz::~DatetimeTz (  ) 

Destroy this object.


Member Function Documentation

static bool bdlt::DatetimeTz::isValid ( const Datetime localDatetime,
int  offset 
) [static]

Return true if the specified localDatetime and the specified time zone offset represent a valid DatetimeTz value, and false otherwise. A localDatetime and offset represent a valid DatetimeTz value if either bdlt::Time() == localDatetime.time() and 0 == offset, or bdlt::Time() != localDatetime.time() and offset is in the range ( -1440 .. 1440 ). Note that a true result from this function does not guarantee that offset corresponds to any geographical or historical time zone. Also note that a true result from this function does not guarantee that localDatetime itself is a valid Datetime object.

static int bdlt::DatetimeTz::maxSupportedBdexVersion ( int  versionSelector  )  [static]

Return the maximum valid BDEX format version, as indicated by the specified versionSelector, to be passed to the bdexStreamOut method. Note that it is highly recommended that versionSelector be formatted as "YYYYMMDD", a date representation. Also note that versionSelector should be a compile-time-chosen value that selects a format version supported by both externalizer and unexternalizer. See the bslx package-level documentation for more information on BDEX streaming of value-semantic types and containers.

DatetimeTz& bdlt::DatetimeTz::operator= ( const DatetimeTz rhs  ) 

Assign to this object the value of the specified rhs object, and return a reference providing modifiable access to this object.

void bdlt::DatetimeTz::setDatetimeTz ( const Datetime localDatetime,
int  offset 
)

Set the local datetime and the time zone offset of this object to the specified localDatetime and offset values respectively. The behavior is undefined unless all of the specified values are within their valid ranges (see isValid). Note that this method provides no validation, and it is the user's responsibility to assure the consistency of the resulting value.

int bdlt::DatetimeTz::setDatetimeTzIfValid ( const Datetime localDatetime,
int  offset 
)

If the specified localDatetime and offset represent a valid DatetimeTz value (see isValid), set the local datetime and the time zone offset of this object to the localDatetime and offset values respectively and return 0, leave this object unmodified and return a non-zero value otherwise.

template<class STREAM >
STREAM& bdlt::DatetimeTz::bdexStreamIn ( STREAM &  stream,
int  version 
)

Assign to this object the value read from the specified input stream using the specified version format, and return a reference to stream. If stream is initially invalid, this operation has no effect. If version is not supported, this object is unaltered and stream is invalidated, but otherwise unmodified. If version is supported but stream becomes invalid during this operation, this object has an undefined, but valid, state. Note that no version is read from stream. See the bslx package-level documentation for more information on BDEX streaming of value-semantic types and containers.

DateTz bdlt::DatetimeTz::dateTz (  )  const

Return a DateTz object having the value of the local date and offset represented by this object.

Datetime bdlt::DatetimeTz::localDatetime (  )  const

Return a Datetime object having the value of the local datetime represented by this object. Note that the Datetime value returned is the current value stored in this object and may be different from the local datetime of the system.

int bdlt::DatetimeTz::offset (  )  const

Return the time zone offset of this DatetimeTz object. Note that the offset is in minutes from UTC.

TimeTz bdlt::DatetimeTz::timeTz (  )  const

Return a TimeTz object having the value of the local time and offset represented by this object.

Datetime bdlt::DatetimeTz::utcDatetime (  )  const

Return a Datetime object having the value of the UTC datetime represented by this object. Note that if 0 != offset(), the returned value is equal to localDatetime() minus offset() minutes, and localDatetime() otherwise.

template<class STREAM >
STREAM& bdlt::DatetimeTz::bdexStreamOut ( STREAM &  stream,
int  version 
) const

Write the value of this object, using the specified version format, to the specified output stream, and return a reference to stream. If stream is initially invalid, this operation has no effect. If version is not supported, stream is invalidated, but otherwise unmodified. Note that version is not written to stream. See the bslx package-level documentation for more information on BDEX streaming of value-semantic types and containers.

bsl::ostream& bdlt::DatetimeTz::print ( bsl::ostream &  stream,
int  level = 0,
int  spacesPerLevel = 4 
) const

Write the value of this object to the specified output stream in a human-readable format, and return a reference to stream. Optionally specify an initial indentation level, whose absolute value is incremented recursively for nested objects. If level is specified, optionally specify spacesPerLevel, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect. Note that the format is not fully specified, and can change without notice.

Datetime bdlt::DatetimeTz::gmtDatetime (  )  const

DEPRECATED: replaced by utcDatetime.

Return a Datetime object having the value of the UTC datetime represented by this object. Note that if 0 != offset(), the returned value is equal to localDatetime() minus offset() minutes, and localDatetime() otherwise.

static int bdlt::DatetimeTz::maxSupportedBdexVersion (  )  [static]

DEPRECATED: Use maxSupportedBdexVersion(int) instead.

Return the most current BDEX streaming version number supported by this class.

int bdlt::DatetimeTz::validateAndSetDatetimeTz ( const Datetime localDatetime,
int  offset 
)

DEPRECATED: replaced by setDatetimeTzIfValid.

If the specified localDatetime and offset represent a valid DatetimeTz value (see isValid), set the local datetime and the time zone offset of this object to the localDatetime and offset values respectively and return 0, leave this object unmodified and return a non-zero value otherwise.


The documentation for this class was generated from the following file: