[#BloombergLP-bdlt-DatetimeTz] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::DatetimeTz :relfileprefix: ../../ :mrdocs: This value‐semantic class describes a datetime value in a particular time zone, which is indicated using an offset from UTC (in minutes). == Synopsis Declared in `<bdlt_datetimetz.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class DatetimeTz; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/DatetimeTz/2constructor-086.adoc[`DatetimeTz`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bdlt/DatetimeTz/2destructor.adoc[`~DatetimeTz`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bdlt/DatetimeTz/operator_assign.adoc[`operator=`] | Assign to this object the value of the specified `rhs` object, and return a reference providing modifiable access to this object. | xref:BloombergLP/bdlt/DatetimeTz/bdexStreamIn.adoc[`bdexStreamIn`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/bdexStreamOut.adoc[`bdexStreamOut`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/dateTz.adoc[`dateTz`] | Return a `DateTz` object having the value of the local date and offset represented by this object. | xref:BloombergLP/bdlt/DatetimeTz/gmtDatetime.adoc[`gmtDatetime`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/localDatetime.adoc[`localDatetime`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/offset.adoc[`offset`] | Return the time zone offset of this `DatetimeTz` object. Note that the offset is in minutes from UTC. | xref:BloombergLP/bdlt/DatetimeTz/print.adoc[`print`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/setDatetimeTz.adoc[`setDatetimeTz`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/setDatetimeTzIfValid.adoc[`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. | xref:BloombergLP/bdlt/DatetimeTz/timeTz.adoc[`timeTz`] | Return a `TimeTz` object having the value of the local time and offset represented by this object. | xref:BloombergLP/bdlt/DatetimeTz/utcDatetime.adoc[`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. | xref:BloombergLP/bdlt/DatetimeTz/validateAndSetDatetimeTz.adoc[`validateAndSetDatetimeTz`] | 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. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/DatetimeTz/isValid.adoc[`isValid`] | 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. | xref:BloombergLP/bdlt/DatetimeTz/maxSupportedBdexVersion-0a.adoc[`maxSupportedBdexVersion`] | `maxSupportedBdexVersion` overloads |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlt/operator_not_eq-082.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` `DatetimeTz` objects do not have the same value, and `false` otherwise. Two `DatetimeTz` objects do not have the same value if they do not have the same local datetime value or the same time zone offset value. | xref:BloombergLP/bdlt/operator_eq-00b.adoc[`operator==`] | Return `true` if the specified `lhs` and `rhs` `DatetimeTz` objects have the same value, and `false` otherwise. Two `DatetimeTz` objects have the same value if they have the same local datetime value and the same time zone offset value. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#