8#ifndef INCLUDED_BDLT_DATETIMETZ
9#define INCLUDED_BDLT_DATETIMETZ
280#include <bdlscm_version.h>
295#include <bsl_iosfwd.h>
313 enum ValidOffsetRange {
418 template <
class STREAM>
461 template <
class STREAM>
477 bsl::ostream&
print(bsl::ostream& stream,
479 int spacesPerLevel = 4)
const;
481#ifndef BDE_OPENSOURCE_PUBLICATION
545template <
class HASHALG>
560 return k_MIN_OFFSET <
offset
570 if (versionSelector >= 20170401) {
586: d_localDatetime(localDatetime)
594: d_localDatetime(original.d_localDatetime)
595, d_offset(original.d_offset)
609 d_localDatetime = rhs.d_localDatetime;
610 d_offset = rhs.d_offset;
636template <
class STREAM>
673 return DateTz(d_localDatetime.
date(), d_offset);
679 return d_localDatetime;
691 return TimeTz(d_localDatetime.
time(), d_offset);
706template <
class STREAM>
715 stream.putInt32(d_offset);
725#ifndef BDE_OPENSOURCE_PUBLICATION
755 return lhs.localDatetime() == rhs.localDatetime()
756 && lhs.offset() == rhs.offset();
768 return rhs.print(stream, 0, -1);
772template <
class HASHALG>
776 using ::BloombergLP::bslh::hashAppend;
Definition bdlt_datetz.h:161
Definition bdlt_datetimetz.h:308
Datetime localDatetime() const
Definition bdlt_datetimetz.h:677
~DatetimeTz()
Destroy this object.
Definition bdlt_datetimetz.h:600
STREAM & bdexStreamOut(STREAM &stream, int version) const
Definition bdlt_datetimetz.h:707
void setDatetimeTz(const Datetime &localDatetime, int offset)
Definition bdlt_datetimetz.h:616
DateTz dateTz() const
Definition bdlt_datetimetz.h:671
DatetimeTz()
Definition bdlt_datetimetz.h:578
STREAM & bdexStreamIn(STREAM &stream, int version)
Definition bdlt_datetimetz.h:637
Datetime gmtDatetime() const
Definition bdlt_datetimetz.h:729
TimeTz timeTz() const
Definition bdlt_datetimetz.h:689
int validateAndSetDatetimeTz(const Datetime &localDatetime, int offset)
Definition bdlt_datetimetz.h:741
static int maxSupportedBdexVersion()
Definition bdlt_datetimetz.h:735
static bool isValid(const Datetime &localDatetime, int offset)
Definition bdlt_datetimetz.h:558
DatetimeTz & operator=(const DatetimeTz &rhs)
Definition bdlt_datetimetz.h:607
int offset() const
Definition bdlt_datetimetz.h:683
Datetime utcDatetime() const
Definition bdlt_datetimetz.h:695
int setDatetimeTzIfValid(const Datetime &localDatetime, int offset)
Definition bdlt_datetimetz.h:625
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition bdlt_datetime.h:330
Date date() const
Return the value of the "date" part of this object.
Definition bdlt_datetime.h:2234
Datetime & addMinutes(bsls::Types::Int64 minutes)
Definition bdlt_datetime.h:2062
Time time() const
Return the value of the "time" part of this object.
Definition bdlt_datetime.h:2345
STREAM & bdexStreamOut(STREAM &stream, int version) const
Definition bdlt_datetime.h:2367
STREAM & bdexStreamIn(STREAM &stream, int version)
Definition bdlt_datetime.h:2190
Definition bdlt_timetz.h:190
Definition bdlt_time.h:195
#define BSLS_ANNOTATION_FALLTHROUGH
Definition bsls_annotation.h:410
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
void hashAppend(HASH_ALGORITHM &hashAlgorithm, const BigEndianInt16 &object)
Definition bbldc_basicisma30360.h:112
bool operator==(const Calendar &lhs, const Calendar &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, const Calendar &calendar)
void hashAppend(HASHALG &hashAlg, const Calendar &object)
bool operator!=(const Calendar &lhs, const Calendar &rhs)
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
Definition bdlbb_blob.h:579