[#BloombergLP-baltzo-ZoneinfoUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/baltzo.adoc[baltzo]::ZoneinfoUtil
:relfileprefix: ../../
:mrdocs:

This `struct` provides a namespace for utility operations using a `Zoneinfo` object&period;

== Synopsis

Declared in `&lt;baltzo&lowbar;zoneinfoutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct ZoneinfoUtil;
----

== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/baltzo/ZoneinfoUtil/convertUtcToLocalTime.adoc[`convertUtcToLocalTime`] 
| Load, into the specified `resultTime`, the local date&hyphen;time value, in the specified `timeZone`, corresponding to the specified `utcTime`, and load, into the specified `resultTransition`, an iterator referring to the first transition in `timeZone` whose transition&hyphen;time is before `utcTime`&period; Return 0 on success, and `baltzo&colon;&colon;ErrorCode&colon;&colon;k&lowbar;OUT&lowbar;OF&lowbar;RANGE` if `resultTime` would be outside of the legal range that a `bdlt&colon;&colon;DatetimeTz` can represent&period; The behavior is undefined unless `isWellFormed(timeZone)` is `true`&period;
| xref:BloombergLP/baltzo/ZoneinfoUtil/isWellFormed.adoc[`isWellFormed`] 
| Return `true` if the specified `timeZone` is a well&hyphen;formed Zoneinfo object (which can be used by other methods on this utility), and `false` otherwise&period; For a Zoneinfo to be considered well&hyphen;formed _all_ of the following must be true&colon;
| xref:BloombergLP/baltzo/ZoneinfoUtil/loadRelevantTransitions.adoc[`loadRelevantTransitions`] 
| Load, into the specified `firstResultTransition`, an iterator referring to the transition describing the characteristics of local time in effect at the specified `localTime` in the specified `timeZone`&semi; in instances where `localTime` is not both a unique and valid local time in `timeZone`, load, into the specified `secondResultTransition`, an iterator referring to a subsequent transition describing the alternative characteristics of local time that could also apply to `localTime`&semi; finally load, into the specified `resultValidity`, the validity of `localTime` as being unique, ambiguous but valid, or invalid&period; If `resultValidity` is `e&lowbar;VALID&lowbar;UNIQUE`, then `firstResultTransition` and `secondResultTransition` will be loaded with the same transition, otherwise the returned transitions will be distinct with `secondResultTransition` referring to the transition immediately after `firstResultTransition`&period; The behavior is undefined unless `isWellFormed(timeZone)` is `true`, and `firstResultTransition !&equals; secondResultTransition`&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
