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

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;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
bool
isWellFormed(xref:BloombergLP/baltzo/Zoneinfo.adoc[Zoneinfo] const& timeZone);
----

== Description

1&period; `timeZone&period;numTransitions() &gt; 0` 2&period; The first transition in `timeZone` is at the first representable `bdlt&colon;&colon;Datetime` value, &quot;Jan 01, 0001 00 00&period;000&quot; &hyphen;&hyphen; i&period;e&period;, `bdlt&colon;&colon;Datetime(1, 1, 1)`&period; 3&period; There is no transition in the ordered sequence of transitions described by `timeZone` where the local clock time is adjusted (either forwards or backwards) introducing a period of invalid or ambiguous local times, where that range of invalid or ambiguous local times overlaps with a range of invalid or or ambiguous local times introduced by the subsequent transition (see component documentation for an illustration)&period;

Note that this method has linear worst&hyphen;case time complexity with respect to `timeZone&period;numTransitions()`&period;


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