[#BloombergLP-baltzo-Zoneinfo] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/baltzo.adoc[baltzo]::Zoneinfo :relfileprefix: ../../ :mrdocs: This class is a value‐semantic type holding a structured representation of the information contained in an Zoneinfo (or "Olson") time zone database for a _single_ locale (e.g., "America/New_York"). The salient attributes of this type are the string identifier and the ordered sequence of `ZoneinfoTransition` objects. == Synopsis Declared in `<baltzo_zoneinfo.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Zoneinfo; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/Zoneinfo/TransitionConstIterator.adoc[`TransitionConstIterator`] | Alias for a bi‐directional `const` iterator over the sequence of transitions maintained by a `Zoneinfo` object. | xref:BloombergLP/baltzo/Zoneinfo/allocator_type.adoc[`allocator_type`] | Allocator type used by this class. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/Zoneinfo/2constructor-002.adoc[`Zoneinfo`] [.small]#[constructor]# | Constructors | xref:BloombergLP/baltzo/Zoneinfo/operator_assign-0b.adoc[`operator=`] | Assignment operators | xref:BloombergLP/baltzo/Zoneinfo/addTransition.adoc[`addTransition`] | Add to this object a transition occurring at the specified `utcTime` when the local time in the described time‐zone adopts the characteristics of the specified `descriptor`. If a transition at `utcTime` is already present, replace it's local‐time descriptor with `descriptor`. | xref:BloombergLP/baltzo/Zoneinfo/allocator.adoc[`allocator`] | Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the currently installed default allocator is used. | xref:BloombergLP/baltzo/Zoneinfo/beginTransitions.adoc[`beginTransitions`] | Return an iterator providing non‐modifiable access to the first transition in the ordered sequence of transitions maintained by this object. Note that if `beginTransitions() == endTransitions()` then there are no transitions stored by this object. | xref:BloombergLP/baltzo/Zoneinfo/endTransitions.adoc[`endTransitions`] | Return an iterator providing non‐modifiable access to the one‐past the last transition in the ordered sequence of transitions that is associated with this object. Note that if `beginTransitions() == endTransitions()` then there are no transitions stored by this object. | xref:BloombergLP/baltzo/Zoneinfo/findTransitionForUtcTime.adoc[`findTransitionForUtcTime`] | Return an iterator providing non‐modifiable access to the transition that holds the local‐time descriptor associated with the specified `utcTime`. The behavior is undefined unless `numTransitions() > 0` and `utcTime` is at or after the transition returned by `firstTransition`. | xref:BloombergLP/baltzo/Zoneinfo/firstTransition.adoc[`firstTransition`] | Return a reference providing non‐modifiable access to the first transition contained in this object. The behavior is undefined unless `numTransitions() > 0`. | xref:BloombergLP/baltzo/Zoneinfo/get_allocator.adoc[`get_allocator`] | Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the default allocator in effect at construction is used. | xref:BloombergLP/baltzo/Zoneinfo/identifier.adoc[`identifier`] | Return a reference providing non‐modifiable access to the `identifier` attribute of this object. | xref:BloombergLP/baltzo/Zoneinfo/numTransitions.adoc[`numTransitions`] | Return the number of transitions maintained by this zone info. | xref:BloombergLP/baltzo/Zoneinfo/posixExtendedRangeDescription.adoc[`posixExtendedRangeDescription`] | Return a reference providing non‐modifiable access to the `posixExtendedRangeDescription` attribute of this object, used to describe local time transitions far in the future (see {posixExtendedRangeDescription}). | xref:BloombergLP/baltzo/Zoneinfo/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/baltzo/Zoneinfo/setIdentifier-0b.adoc[`setIdentifier`] | `setIdentifier` overloads | xref:BloombergLP/baltzo/Zoneinfo/setPosixExtendedRangeDescription-06.adoc[`setPosixExtendedRangeDescription`] | `setPosixExtendedRangeDescription` overloads | xref:BloombergLP/baltzo/Zoneinfo/swap.adoc[`swap`] | Efficiently exchange the value of this object with the value of the specified `other` object. This method provides the no‐throw exception‐safety guarantee. The behavior is undefined unless this object was created with the same allocator as `other`. | xref:BloombergLP/baltzo/Zoneinfo/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<Zoneinfo, UsesBslmaAllocator>`] | Nested trait declaration for `bslma::UsesBslmaAllocator`. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/baltzo/operator_eq-0c.adoc[BloombergLP::baltzo::operator==]` | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. Two `Zoneinfo` objects have the same value if the corresponding value of their `identifier` attribute is the same and if both store the same sequence of transitions, ordered by time. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baltzo/operator_not_eq-03.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise. Two `Zoneinfo` objects do not have the same value if their corresponding `identifier` attribute does not have the same value, or if both do _not_ store the same sequence of transitions, ordered by time. | xref:BloombergLP/baltzo/swap-096.adoc[`swap`] | Exchange the values of the specified `a` and `b` objects. This function provides the no‐throw exception‐safety guarantee if the two objects were created with the same allocator and the basic guarantee otherwise. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#