[#BloombergLP-bdlt-Iso8601Util-parse-02f] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::xref:BloombergLP/bdlt/Iso8601Util.adoc[Iso8601Util]::parse :relfileprefix: ../../../ :mrdocs: Parse the specified ISO 8601 `string` as a `Datetime` or `DatetimeTz` value, depending on the presence of a zone designator, and load the value into the specified `result`, using the optionally specified `configuration`. Return 0 on success, and a non‐zero value (with no effect) otherwise. `string` is assumed to be of the form: ` Default: YYYY‐MM‐DDThh:mm:ss{(.|,)s+}{(+|‐)hh{:}mm|Z} Basic: YYYYMMDDThhmmss{(.|,)s+}{(+|‐)hh{:}mm|Z} ` _Exactly_ `string.length()` characters are parsed; parsing will fail if a proper prefix of `string` matches the expected format, but the entire `string.length()` characters do not. If an optional fractional second having more than six digits is present in `string`, it is rounded to the nearest value in microseconds. If the optional zone designator is present in the `string`, the input is parsed as a `DatetimeTz` value, and as a `Datetime` value otherwise. If a leap second is detected (i.e., the parsed value of the `second` attribute is 60; see {Leap Seconds}), the `second` attribute is taken to be 59, then an additional second is added to `result` at the end. If the "hh:mm:ss" portion of `string` is "24:00:00", then the fractional second must be absent or 0, and the zone designator must be absent or indicate UTC. The behavior is undefined unless `string.data()` is non‐null. == Synopsis Declared in `<bdlt_iso8601util.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static int parse( xref:BloombergLP/bdlt/Iso8601Util/DatetimeOrDatetimeTz.adoc[DatetimeOrDatetimeTz]* result, std::string_view const& string, xref:BloombergLP/bdlt/Iso8601Util/ParseConfiguration.adoc[ParseConfiguration] configuration = ParseConfiguration()); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#