@@ -141,6 +141,12 @@ BSLS_IDENT("$Id: $")
141141// and treat `+00:00`, `+0000`, `Z`, and `z` as equivalent zone designators
142142// (all denoting UTC).
143143//
144+ // The set of zone designators accepted by the `parse` functions differs
145+ // slightly from ISO 8601; see {Zone Designators} for details. Other than
146+ // these differences, the `parse` functions accept all ISO 8601 complete
147+ // representations. We will ignore these differences when discussing the
148+ // behavior of the `parse` functions below.
149+ //
144150// Parsing in `Relaxed` mode accepts "relaxed" ISO 8601 format that is a
145151// superset of the strict ISO 8601 format, meaning this function will parse
146152// ISO 8601 values as well as supporting some common variations. Currently
@@ -223,6 +229,15 @@ BSLS_IDENT("$Id: $")
223229// ends of the valid range of dates (0001/01/01 and 9999/12/31), then parsing
224230// for `Datetime` fails.
225231//
232+ // The set of zone designators accepted by the `parse` functions deviates from
233+ // ISO 8601 in the following ways:
234+ // * ISO 8601 allows a zone designator of the form +hh or -hh (that is, with
235+ // minutes omitted); the `parse` functions do not.
236+ // * The `parse` functions allow the zone designators "-00", "-0000", and
237+ // "-00:00" as alternatives to the ISO 8601 zone designators "Z", "+00",
238+ // "+0000", and "+00:00". Note that this component never *generates*
239+ // zone designators containing negative zeroes.
240+ //
226241// /Fractional Seconds
227242// / - - - - - - - - -
228243// The fractional second is optional. When the fractional second is absent, it
@@ -382,7 +397,8 @@ BSLS_IDENT("$Id: $")
382397//
383398// <ZONE> ::= (+|-)hh{:}mm|Z # zone designator (':' is
384399// # optional whether default
385- // # or basic)
400+ // # or basic); minutes cannot
401+ // # be omitted
386402// ```
387403//
388404// /Summary of Supported ISO 8601 Duration Representations
0 commit comments