Skip to content

Commit ac17428

Browse files
t3nsorGitHub Enterprise
authored andcommitted
Document differences from ISO 8601 (DRQS 179180924) (#5439)
1 parent c04d31e commit ac17428

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

groups/bdl/bdlt/bdlt_iso8601util.h

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)