rfc9557.original   rfc9557.txt 
Serialising Extended Data About Times and Events U. Sharma Internet Engineering Task Force (IETF) U. Sharma
Internet-Draft Igalia, S.L. Request for Comments: 9557 Igalia, S.L.
Updates: 3339 (if approved) C. Bormann Updates: 3339 C. Bormann
Intended status: Standards Track Universität Bremen TZI Category: Standards Track Universität Bremen TZI
Expires: 25 April 2024 23 October 2023 ISSN: 2070-1721 March 2024
Date and Time on the Internet: Timestamps with additional information Date and Time on the Internet: Timestamps with Additional Information
draft-ietf-sedate-datetime-extended-11
Abstract Abstract
This document defines an extension to the timestamp format defined in This document defines an extension to the timestamp format defined in
RFC3339 for representing additional information including a time RFC 3339 for representing additional information, including a time
zone. zone.
It updates RFC3339 in the specific interpretation of the local offset It updates RFC 3339 in the specific interpretation of the local
Z, which is no longer understood to "imply that UTC is the preferred offset Z, which is no longer understood to "imply that UTC is the
reference point for the specified time"; see Section 2. preferred reference point for the specified time".
// (This "cref" paragraph will be removed by the RFC editor:) The
// present version (-11) addresses comments received during IESG
// review.
About This Document
This note is to be removed before publishing as an RFC.
Status information for this document may be found at
https://datatracker.ietf.org/doc/draft-ietf-sedate-datetime-
extended/.
Discussion of this document takes place on the Serialising Extended
Data About Times and Events (SEDATE) Working Group mailing list
(mailto:sedate@ietf.org), which is archived at
https://mailarchive.ietf.org/arch/browse/sedate/. Subscribe at
https://www.ietf.org/mailman/listinfo/sedate/.
Source for this draft and an issue tracker can be found at
https://github.com/ietf-wg-sedate/draft-ietf-sedate-datetime-
extended.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 25 April 2024. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9557.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction
1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Scope
1.2. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Definitions
2. Updating RFC 3339 . . . . . . . . . . . . . . . . . . . . . . 7 2. Updating RFC 3339
2.1. Background . . . . . . . . . . . . . . . . . . . . . . . 7 2.1. Background
2.2. Update to RFC 3339 . . . . . . . . . . . . . . . . . . . 7 2.2. Update to RFC 3339
2.3. Notes . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Notes
3. Internet Extended Date/Time format (IXDTF) . . . . . . . . . 8 3. Internet Extended Date/Time Format (IXDTF)
3.1. Format of Extended Information . . . . . . . . . . . . . 8 3.1. Format of Extended Information
3.2. Registering Keys for Extended Information Tags . . . . . 9 3.2. Registering Keys for Extended Information Tags
3.3. Optional Generation, Elective vs. Critical Consumption . 9 3.3. Optional Generation and Elective vs. Critical Consumption
3.4. Inconsistent time-offset/Time-Zone Information . . . . . 11 3.4. Inconsistent time-offset and Time Zone Information
4. Syntax Extensions to RFC 3339 . . . . . . . . . . . . . . . . 12 4. Syntax Extensions to RFC 3339
4.1. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1. ABNF
4.2. Examples . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2. Examples
5. The u-ca Suffix Key: Calendar Awareness . . . . . . . . . . . 14 5. The u-ca Suffix Key: Calendar Awareness
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 6. IANA Considerations
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations
7.1. Excessive Disclosure . . . . . . . . . . . . . . . . . . 16 7.1. Excessive Disclosure
7.2. Data Format Implementation Vulnerabilities . . . . . . . 16 7.2. Data Format Implementation Vulnerabilities
7.3. Operating with Inconsistent Data . . . . . . . . . . . . 16 7.3. Operating with Inconsistent Data
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 8. References
8.1. Normative References . . . . . . . . . . . . . . . . . . 16 8.1. Normative References
8.2. Informative References . . . . . . . . . . . . . . . . . 17 8.2. Informative References
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 19 Acknowledgements
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Contributors
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses
1. Introduction 1. Introduction
Dates and times are used in a very diverse set of internet Dates and times are used in a very diverse set of Internet
applications, all the way from server-side logging to calendaring and applications, all the way from server-side logging to calendaring and
scheduling. scheduling.
Each distinct instant in time can be represented in a descriptive Each distinct instant in time can be represented in a descriptive
text format using a timestamp. [ISO8601-1:2019] standardizes a text format using a timestamp. [ISO8601-1:2019] standardizes a
widely-adopted timestamp format, an earlier version of which widely adopted timestamp format, an earlier version of which
[ISO8601:1988] formed the basis of the Internet Date/Time Format [ISO8601:1988] formed the basis of the Internet Date/Time Format
[RFC3339]. However, this format allows timestamps to contain only [RFC3339]. However, this format allows timestamps to contain very
very little additional relevant information. Beyond that, any little additional relevant information. Beyond that, any contextual
contextual information related to a given timestamp needs to be information related to a given timestamp needs to be either handled
either handled separately or attached to it in a non-standard manner. separately or attached to it in a non-standard manner.
This is a pressing issue for applications that handle each such This is a pressing issue for applications that handle each such
instant in time with an associated time zone name, in order to take instant in time with an associated time zone name in order to take
into account events such as daylight saving time transitions. Many into account events such as daylight saving time transitions. Many
of these applications attach the time zone to the timestamp in a non- of these applications attach the time zone to the timestamp in a non-
standard format, at least one of which is fairly well-adopted standard format, at least one of which is fairly well-adopted
[JAVAZDT]. Furthermore, applications might want to attach even more [JAVAZDT]. Furthermore, applications might want to attach even more
information to the timestamp, including but not limited to the information to the timestamp, including but not limited to the
calendar system in which it should be represented. calendar system in which it should be represented.
This document defines an extension to the timestamp format defined in
[RFC3339] for representing additional information, including a time
zone.
It updates [RFC3339] in the specific interpretation of the local
offset Z, which is no longer understood to "imply that UTC is the
preferred reference point for the specified time"; see Section 28.
1.1. Scope 1.1. Scope
This document defines an extension syntax for timestamps as specified [RFC3339] defines a syntax for timestamps to represent date and time
in [RFC3339] that has the following properties: in the Internet. For this, the present document defines an extension
syntax that achieves the following properties:
* The extension suffix is completely optional, making existing * The extension suffix is completely optional, making existing
[RFC3339] timestamps compatible with this format. [RFC3339] timestamps compatible with this format.
* The format is compatible with the pre-existing popular syntax for * The format is compatible with the pre-existing popular syntax for
attaching time zone names to timestamps [JAVAZDT]. attaching time zone names to timestamps [JAVAZDT].
* The format provides a generalized way to attach additional * The format provides a generalized way to attach additional
information to the timestamp. information to the timestamp.
We refer to this format as the Internet Extended Date/Time Format We refer to this format as the Internet Extended Date/Time Format
(IXDTF). (IXDTF).
This document does not address extensions to the format where the This document does not address extensions to the format where the
semantic result is no longer a fixed timestamp that is referenced to semantic result is no longer a fixed timestamp that is referenced to
a (past or future) UTC time. For instance, it does not address: a (past or future) UTC time. For instance, it does not address:
* Future time given as a local time in some specified time zone, * future time given as a local time in some specified time zone,
where changes to the definition of that time zone (such as a where changes to the definition of that time zone (such as a
political decision to enact or rescind daylight saving time) political decision to enact or rescind daylight saving time)
affect the instant in time represented by the timestamp. affect the instant in time represented by the timestamp;
* "Floating time", i.e., a local time without information describing * "floating time", i.e., a local time without information describing
the UTC offset or time zone in which it should be interpreted. the UTC offset or time zone in which it should be interpreted; and
* The use of timescales different from UTC, such as International * the use of timescales different from UTC, such as International
Atomic Time (TAI). Atomic Time (TAI).
However, additional information augmenting a fixed timestamp may be However, additional information augmenting a fixed timestamp may be
sufficient to detect an inconsistency between intention and the sufficient to detect an inconsistency between the intention and the
actual information in the timestamp, such as between the UTC offset actual information in the timestamp, such as between the UTC offset
and time zone name. For instance, inconsistencies might arise and time zone name. For instance, inconsistencies might arise
because of: because of:
* political decisions as discussed above, or * political decisions, as discussed above,
* updates to time zone definitions being applied at different times * updates to time zone definitions being applied at different times
by timestamp producers and receivers, or by timestamp producers and receivers, or
* errors in programs producing and consuming timestamps. * errors in programs producing and consuming timestamps.
While the information available in an IXDTF string is not generally While the information available in an IXDTF string is not generally
sufficient to resolve an inconsistency, it may be used to initiate sufficient to resolve an inconsistency, it may be used to initiate
some out of band processing to obtain sufficient information for such some out-of-band processing to obtain sufficient information for such
a resolution. a resolution.
In order to address some of the requirements implied here, future In order to address some of the requirements implied here, related
related specifications might define syntax and semantics of strings specifications in the future might define syntax and semantics of
similar to [RFC3339]. Note that the extension syntax defined in the strings similar to those described in [RFC3339]. Note that the
present document is designed in such a way that it can be useful for extension syntax defined in the present document is designed in such
such specifications as well. a way that it can be useful for such specifications as well.
1.2. Definitions 1.2. Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
UTC: Coordinated Universal Time, as maintained since 1988 by the UTC: Coordinated Universal Time, as maintained since 1988 by the
Bureau International des Poids et Mesures (BIPM) in conjunction Bureau International des Poids et Mesures (BIPM) in conjunction
with leap seconds as announced by the International Earth Rotation with leap seconds, as announced by the International Earth
and Reference Frames Service [IERS]. From 1972 through 1987, UTC Rotation and Reference Systems Service [IERS]. From 1972 through
was maintained entirely by Bureau International de l'Heure (BIH). 1987, UTC was maintained entirely by the Bureau International de
Before 1972, UTC was not generally recognized and civil time was l'Heure (BIH). Before 1972, UTC was not generally recognized, and
determined by individual jurisdictions using different techniques civil time was determined by individual jurisdictions using
for attempting to follow Universal Time based on measuring the different techniques for attempting to follow Universal Time based
rotation of the earth. on measuring the rotation of the earth.
UTC is often mistakenly referred to as GMT, an earlier timescale UTC is often mistakenly referred to as GMT (Greenwich Mean Time),
for which UTC was designed to be a useful successor. an earlier timescale for which UTC was designed to be a useful
successor.
ABNF: Augmented Backus-Naur Form, a format used to represent ABNF: Augmented Backus-Naur Form, a format used to represent
permissible strings in a protocol or language, as defined in permissible strings in a protocol or language, as defined in
[RFC5234]. The rules defined in Appendix B of [RFC5234] are [RFC5234]. The rules defined in Appendix B of [RFC5234] are
imported implicitly. imported implicitly.
Internet Extended Date/Time Format (IXDTF): The date/time format IXDTF: Internet Extended Date/Time Format, the date/time format
defined in Section 4 of this document. defined in Section 4 of this document.
Timestamp: An unambiguous representation of a particular instant in Timestamp: An unambiguous representation of a particular instant in
time. time.
UTC Offset: Difference between a given local time and UTC, usually UTC Offset: Difference between a given local time and UTC, usually
given in negative or positive hours and minutes. For example, given in negative or positive hours and minutes. For example,
local time in the city of New York, NY, USA, in the wintertime in local time in the city of New York, NY, USA in the wintertime in
2023, is 5 hours behind UTC, so its UTC offset is "-05:00". 2023 is 5 hours behind UTC, so its UTC offset is -05:00.
Z: A suffix which, when applied to a time, denotes a UTC offset of Z: A suffix that, when applied to a time, denotes a UTC offset of
00:00; often spoken "Zulu" from the ICAO phonetic alphabet 00:00; often pronounced "Zulu" from the ICAO phonetic alphabet
representation of the letter "Z". (Definition from Section 2 of representation of the letter "Z". (The definition is from
[RFC3339]; see [ICAO-PA] for the phonetic alphabet.) Section 2 of [RFC3339]; see the International Civil Aviation
Organization (ICAO) document [ICAO-PA] for the phonetic alphabet
mentioned.)
Time Zone: A set of rules representing the relationship of local Time Zone: A set of rules representing the relationship of local
time to UTC for a particular place or region. Mathematically, a time to UTC for a particular place or region. Mathematically, a
time zone can be thought of as a function that maps timestamps to time zone can be thought of as a function that maps timestamps to
UTC offsets. Time zones can deterministically convert a timestamp UTC offsets. Time zones can deterministically convert a timestamp
to local time. They can also be used in the reverse direction to to local time. They can also be used in the reverse direction to
convert local time to a timestamp, with the caveat that some local convert local time to a timestamp, with the caveat that some local
times may have zero or multiple possible timestamps due to nearby times may have zero or multiple possible timestamps due to nearby
daylight saving time changes or other changes to the UTC offset of daylight saving time changes or other changes to the UTC offset of
that time zone. Unlike the UTC offset of a timestamp which makes that time zone. Unlike the UTC offset of a timestamp, which makes
no claims about the UTC offset of other related timestamps (and no claims about the UTC offset of other related timestamps (and
which is therefore unsuitable for performing local-time operations which is therefore unsuitable for performing local-time
such as "one day later"), a time zone also defines how to derive operations, such as "one day later"), a time zone also defines how
new timestamps based on differences in local time. For example, to derive new timestamps based on differences in local time. For
to calculate "one day later than this timestamp in San Francisco, example, to calculate "one day later than this timestamp in San
California", a time zone is required because the UTC offset of Francisco, California", a time zone is required because the UTC
local time in San Francisco can change from one day to the next. offset of local time in San Francisco can change from one day to
the next.
IANA Time Zone: A named time zone that is included in the Time Zone IANA Time Zone: A named time zone that is included in the Time Zone
Database (often called tz or zoneinfo) maintained by IANA Database (often called tz or zoneinfo) maintained by IANA [TZDB]
[TZDB][BCP175]. Most IANA time zones are named for the largest [BCP175]. Most IANA Time Zones are named for the largest city in
city in a particular region that shares the same time zone rules, a particular region that shares the same time zone rules, e.g.,
e.g., Europe/Paris or Asia/Tokyo [TZDB-NAMING]. Europe/Paris or Asia/Tokyo [TZDB-NAMING].
The rules defined for a named IANA time zone can change over time. The rules defined for a named IANA Time Zone can change over time.
The use of a named IANA time zone implies that the intent is for The use of a named IANA Time Zone implies that the intent is for
the rules to apply that are current at the time of interpretation: the rules that are current at the time of interpretation to apply:
the additional information conveyed by using that time zone name the additional information conveyed by using that time zone name
is to change with any rule changes as recorded in the IANA time is to change with any rule changes as recorded in the IANA Time
zone database. Zone Database.
Offset Time Zone: A time zone defined by a specific UTC offset, e.g. Offset Time Zone: A time zone defined by a specific UTC offset,
+08:45, and serialized using as its name the same numeric UTC e.g., +08:45, and serialized using as its name the same numeric
offset format used in an RFC 3339 timestamp, for example: UTC offset format used in an [RFC3339] timestamp, for example:
2022-07-08T00:14:07+08:45[+08:45] 2022-07-08T00:14:07+08:45[+08:45]
An offset in the suffix that does not repeat the offset of the An offset in the suffix that does not repeat the offset of the
timestamp is inconsistent (see Section 3.4). timestamp is inconsistent (see Section 3.4).
Although serialization with offset time zones is supported in this Although serialization with offset time zones is supported in this
document for backwards compatibility with java.time.ZonedDateTime document for backwards compatibility with java.time.ZonedDateTime
[JAVAZDT], use of offset time zones is strongly discouraged. In [JAVAZDT], use of offset time zones is strongly discouraged. In
particular, programs MUST NOT copy the UTC offset from a timestamp particular, programs MUST NOT copy the UTC offset from a timestamp
into an offset time zone in order to satisfy another program which into an offset time zone in order to satisfy another program that
requires a time zone suffix in its input. Doing this will requires a time zone suffix in its input. Doing this will
improperly assert that the UTC offset of timestamps in that improperly assert that the UTC offset of timestamps in that
location will never change, which can result in incorrect location will never change, which can result in incorrect
calculations in programs that add, subtract, or otherwise derive calculations in programs that add, subtract, or otherwise derive
new timestamps from the one provided. For example, 2020-01- new timestamps from the one provided. For example, 2020-01-
01T00:00+01:00[Europe/Paris] will let programs add six months to 01T00:00+01:00[Europe/Paris] will let programs add six months to
the timestamp while adjusting for Summer Time (daylight saving the timestamp while adjusting for summer time (daylight saving
time). But the same calculation applied to time). However, the same calculation applied to
2020-01-01T00:00+01:00[+01:00] will produce an incorrect result 2020-01-01T00:00+01:00[+01:00] will produce an incorrect result
that will be off by one hour in the timezone Europe/Paris. that will be off by one hour in the time zone Europe/Paris.
CLDR: Common locale data repository [CLDR], a project of the Unicode CLDR: Common Locale Data Repository [CLDR], a project of the Unicode
Consortium to provide locale data to applications. Consortium to provide locale data to applications.
For more information about timescales, see Appendix E of [RFC1305], For more information about timescales, see Appendix E of [RFC1305],
Section 3 of [ISO8601:1988], and the appropriate ITU documents Section 3 of [ISO8601:1988], and the appropriate ITU documents
[ITU-R-TF.460-6]. [ITU-R-TF.460-6]. (Note: [RFC1305] was obsoleted by [RFC5905], which
no longer contains the Appendix E referenced here.)
2. Updating RFC 3339 2. Updating RFC 3339
2.1. Background 2.1. Background
Section 4.3 of [RFC3339] states that an offset given as Z or +00:00 Section 4.3 of [RFC3339] states that an offset given as Z or +00:00
implies that "UTC is the preferred reference point for the specified implies that "UTC is the preferred reference point for the specified
time". The offset -00:00 is provided as a way to express that "the time". The offset -00:00 is provided as a way to express that "the
time in UTC is known, but the offset to local time is unknown". time in UTC is known, but the offset to local time is unknown".
This convention mirrors a similar convention for date/time This convention mirrors a similar convention for date/time
information in email headers, described in Section 3.3 of [RFC5322] information in email headers that is described in Section 3.3 of
and introduced earlier in Section 3.3 of [RFC2822]. This email [RFC5322] and introduced earlier in Section 3.3 of [RFC2822]. This
header convention is in actual use, while its adaptation into email header convention is in actual use, while its adaptation into
[RFC3339] was always compromised by the fact that [ISO8601:2000] and [RFC3339] was always compromised by the fact that [ISO8601:2000] and
later versions do not actually allow -00:00. later versions do not actually allow -00:00.
Implementations that needed to express the semantics of -00:00 Implementations that needed to express the semantics of -00:00
therefore tended to use Z instead. therefore tended to use Z instead.
2.2. Update to RFC 3339 2.2. Update to RFC 3339
This specification updates Section 4.3 of [RFC3339], aligning it with This specification updates Section 4.3 of [RFC3339], aligning it with
the actual practice of interpreting the offset Z to mean the same as- the actual practice of interpreting the offset Z to mean the same as
00:00: "the time in UTC is known, but the offset to local time is -00:00: "the time in UTC is known, but the offset to local time is
unknown". unknown".
Section 4.3 of [RFC3339] is revised to read as follows: Section 4.3 of [RFC3339] is revised to read as follows:
| If the time in UTC is known, but the offset to local time is | If the time in UTC is known, but the offset to local time is
| unknown, this can be represented with an offset of "Z". (The | unknown, this can be represented with an offset of "Z". (The
| original version of this specification provided "-00:00" for this | original version of this specification provided -00:00 for this
| purpose, which is not allowed by [ISO8601:2000] and therefore is | purpose, which is not allowed by [ISO8601:2000] and therefore is
| less interoperable; Section 3.3 of [RFC5322] describes a related | less interoperable; Section 3.3 of [RFC5322] describes a related
| convention for email which does not have this problem). This | convention for email, which does not have this problem). This
| differs semantically from an offset of "+00:00", which implies | differs semantically from an offset of +00:00, which implies that
| that UTC is the preferred reference point for the specified time. | UTC is the preferred reference point for the specified time.
2.3. Notes 2.3. Notes
Note that the semantics of the local offset +00:00 is not updated; Note that the semantics of the local offset +00:00 is not updated;
this retains the implication that UTC is the preferred reference this retains the implication that UTC is the preferred reference
point for the specified time. point for the specified time.
Note also that the fact that [ISO8601:2000] and later do not allow Also note that the fact that [ISO8601:2000] and later do not allow
-00:00 as a local offset reduces the level of interoperability that -00:00 as a local offset reduces the level of interoperability that
can be achieved in using this feature; the present specification can be achieved in using this feature; however, the present
however does not formally deprecate this syntax. With the update to specification does not formally deprecate this syntax. With the
RFC 3339, the local offset Z should now be used in its place. update to [RFC3339], the local offset Z should now be used in its
place.
3. Internet Extended Date/Time format (IXDTF) 3. Internet Extended Date/Time Format (IXDTF)
This section discusses desirable qualities of formats for the This section discusses desirable qualities of formats for the
timestamp extension suffix and defines the IXDTF format, which timestamp extension suffix and defines the IXDTF format, which
extends [RFC3339] for use in Internet protocols. extends [RFC3339] for use in Internet protocols.
3.1. Format of Extended Information 3.1. Format of Extended Information
The format allows applications to specify additional important The format allows applications to specify additional important
information in addition to a bare [RFC3339] timestamp. information in addition to a bare [RFC3339] timestamp.
This is done by defining _tags_, each with a _key_ and a _value_ This is done by defining _tags_, each with a _key_ and a _value_
separated by an equals sign. The value of a tag can be one or more separated by an equals sign. The value of a tag can be one or more
items delimited by hyphen/minus signs. items delimited by hyphen/minus signs.
Applications can build an informative timestamp _suffix_ using any Applications can build an informative timestamp _suffix_ using any
number of these tags. number of these tags.
Keys are lower-case only. Values are case-sensitive unless otherwise Keys are lowercase only. Values are case-sensitive unless otherwise
specified. specified.
See Section 3.3 for the handling of inconsistent information in a See Section 3.3 for the handling of inconsistent information in a
suffix. suffix.
3.2. Registering Keys for Extended Information Tags 3.2. Registering Keys for Extended Information Tags
Suffix tag keys are registered by supplying the information specified Suffix tag keys are registered by supplying the information specified
in this section. This information is modeled after that specified in this section. This information is modeled after that specified
for the media type registry [RFC6838]; if in doubt, the provisions of for the "Media Types" registry [RFC6838]; if in doubt, the provisions
this registry should be applied analogously. of this registry should be applied analogously.
Key Identifier: The key (conforming to suffix-key in Section 4.1) Key Identifier: The key (conforming to suffix-key in Section 4.1)
Registration status: "Provisional" or "Permanent" Registration Status: "Provisional" or "Permanent"
Description: A very brief description of the key. Description: A very brief description of the key
Change controller: Who is in control of evolving the specification Change Controller: Who is in control of evolving the specification
governing values for this key. This information can include email governing values for this key. This information can include email
addresses of contact points and discussion lists, and references addresses of contact points, discussion lists, and references to
to relevant web pages (URLs). relevant web pages (URLs).
Reference: A reference. For permanent tag keys, this includes a Reference: A reference. For permanent tag keys, this includes a
full specification. For provisional tag keys, there is an full specification. For provisional tag keys, there is an
expectation that some information is available even if that does expectation that some information is available even if that does
not amount to a full specification; in this case, the registrant not amount to a full specification; in this case, the registrant
is expected to improve this information over time. is expected to improve this information over time.
Key names that start with an underscore are intended for experiments Key names that start with an underscore are intended for experiments
in controlled environments and cannot be registered; such keys MUST in controlled environments and cannot be registered; such keys MUST
NOT be used for interchange and MUST be rejected by implementations NOT be used for interchange and MUST be rejected by implementations
not specifically configured to take part in such an experiment. See not specifically configured to take part in such an experiment. See
[BCP178] for a discussion about the danger of experimental keys [BCP178] for a discussion about the danger of experimental keys
leaking out to general production and why that must be prevented. leaking out to general production and why that must be prevented.
3.3. Optional Generation, Elective vs. Critical Consumption 3.3. Optional Generation and Elective vs. Critical Consumption
For the IXDTF format, suffix tags are always _optional_: They can be For the IXDTF format, suffix tags are always _optional_. They can be
added or left out as desired by the generator of the string. (An added or left out as desired by the generator of the string. (An
application might require the presence of specific suffix tags, application might require the presence of specific suffix tags,
though.) though.)
Without further indication, suffix tags are also _elective_: The Without further indication, suffix tags are also _elective_. The
recipient is free to ignore any suffix tag included in an IXDTF recipient is free to ignore any suffix tag included in an IXDTF
string. Reasons might include that the recipient does not implement string. Reasons might include that the recipient does not implement
(or know about) the specific suffix key, or that it does recognize (or know about) the specific suffix key or that it does recognize the
the key but cannot act on the value provided. key but cannot act on the value provided.
A suffix tag may also indicate that it is _critical_: The recipient A suffix tag may also indicate that it is _critical_: The recipient
is advised that it MUST NOT act on the Internet Extended Date/Time is advised that it MUST NOT act on the IXDTF string unless it can
Format (IXDTF) string unless it can process the suffix tag as process the suffix tag as specified. A critical suffix tag is
specified. A critical suffix tag is indicated by following its indicated by following its opening bracket with an exclamation mark
opening bracket with an exclamation mark (see critical-flag in (see critical-flag in Section 4.1).
Section 4.1).
For example, IXDTF strings such as: For example, IXDTF strings such as:
2022-07-08T00:14:07+01:00[Europe/Paris] 2022-07-08T00:14:07+01:00[Europe/Paris]
are internally inconsistent (see Section 3.4), because Europe/Paris are internally inconsistent (see Section 3.4), because Europe/Paris
did not use a time zone offset of +01:00 in July 2022. The time zone did not use a time zone offset of +01:00 in July 2022. However, the
hint given in the suffix tag is elective, though, so the recipient is time zone hint given in the suffix tag is elective, so the recipient
not required to act on the inconsistency; it can treat the Internet is not required to act on the inconsistency; it can treat the
Date/Time Format string as if it were: Internet Date/Time Format string as if it were:
2022-07-08T00:14:07+01:00 2022-07-08T00:14:07+01:00
| Note that as per Section 2 (see also Section 3.4), the IXDTF | Note that, as per Section 2 (see also Section 3.4), the IXDTF
| string: | string:
| |
| 2022-07-08T00:14:07Z[Europe/Paris] | 2022-07-08T00:14:07Z[Europe/Paris]
| |
| does not exhibit such an inconsistency, as the local offset of | does not exhibit such an inconsistency, as the local offset of
| Z does not imply a specific preferred time zone of | Z does not imply a specific preferred time zone of
| interpretation. Using the Time Zone Database rules for Europe/ | interpretation. Using the Time Zone Database rules for Europe/
| Paris in the summer of 2022, it is equivalent to: | Paris in the summer of 2022, it is equivalent to:
| |
| 2022-07-08T02:14:07+02:00[Europe/Paris] | 2022-07-08T02:14:07+02:00[Europe/Paris]
skipping to change at page 11, line 4 skipping to change at line 438
(assuming that the recipient does not understand the suffix key (assuming that the recipient does not understand the suffix key
knort). knort).
In contrast to this elective use of a suffix tag, In contrast to this elective use of a suffix tag,
2022-07-08T00:14:07+01:00[!Europe/Paris] 2022-07-08T00:14:07+01:00[!Europe/Paris]
2022-07-08T00:14:07Z[!u-ca=chinese][u-ca=japanese] 2022-07-08T00:14:07Z[!u-ca=chinese][u-ca=japanese]
2022-07-08T00:14:07Z[u-ca=chinese][!u-ca=japanese] 2022-07-08T00:14:07Z[u-ca=chinese][!u-ca=japanese]
2022-07-08T00:14:07Z[!knort=blargel] 2022-07-08T00:14:07Z[!knort=blargel]
each have an internal inconsistency or an unrecognized suffix key/ each have an internal inconsistency or an unrecognized suffix key/
value that are marked as critical, so a recipient MUST treat these value that is marked as critical, so a recipient MUST treat these
IXDTF strings as erroneous. This means that the application MUST IXDTF strings as erroneous. This means that the application MUST
reject the data, or perform some other error handling, such as asking reject the data or perform some other error handling, such as asking
the user how to resolve the inconsistency (see Section 3.4). the user how to resolve the inconsistency (see Section 3.4).
Note that applications MAY also perform additional processing on Note that applications MAY also perform additional processing on
inconsistent or unrecognized elective suffix tags, such as asking the inconsistent or unrecognized elective suffix tags, such as asking the
user how to resolve the inconsistency. While they are not required user how to resolve the inconsistency. While they are not required
to do so with elective suffix tags, they are required to reject or to do so with elective suffix tags, they are required to reject or
perform some other error handling when encountering inconsistent or perform some other error handling when encountering inconsistent or
unrecognized suffix tags marked as critical. unrecognized suffix tags marked as critical.
An application that encounters duplicate use of a suffix key in An application that encounters duplicate use of a suffix key in
elective suffixes and does not want to perform additional processing elective suffixes and does not want to perform additional processing
on this inconsistency MUST choose the first suffix that has that key, on this inconsistency MUST choose the first suffix that has that key,
i.e., that is,
2022-07-08T00:14:07Z[u-ca=chinese][u-ca=japanese] 2022-07-08T00:14:07Z[u-ca=chinese][u-ca=japanese]
2022-07-08T00:14:07Z[u-ca=chinese] 2022-07-08T00:14:07Z[u-ca=chinese]
are then treated the same. are then treated the same.
3.4. Inconsistent time-offset/Time-Zone Information 3.4. Inconsistent time-offset and Time Zone Information
An RFC 3339 timestamp can contain a time-offset value that indicates An [RFC3339] timestamp can contain a time-offset value that indicates
the offset between local time and UTC (see Section 4 of [RFC3339], the offset between local time and UTC (see Section 4 of [RFC3339],
noting that Section 2 of the present specification updates noting that Section 2 of the present specification updates
Section 4.3 of [RFC3339]). Section 4.3 of [RFC3339]).
The information given in such a time-offset value can be inconsistent The information given in such a time-offset value can be inconsistent
with the information provided in a time zone suffix for an IXDTF with the information provided in a time zone suffix for an IXDTF
timestamp. timestamp.
For example, a calendar application could store an IXDTF string For example, a calendar application could store an IXDTF string
representing a far-future meeting in a particular time zone. If that representing a far-future meeting in a particular time zone. If that
time zone's definition is subsequently changed to abolish daylight time zone's definition is subsequently changed to abolish daylight
saving time, IXDTF strings that were originally consistent may now be saving time, IXDTF strings that were originally consistent may now be
inconsistent. inconsistent.
In case of inconsistent time-offset and time zone suffix, if the In case of an inconsistency between time-offset and time zone suffix,
critical flag is used on the time zone suffix, an application MUST if the critical flag is used on the time zone suffix, an application
act on the inconsistency. If the critical flag is not used, it MAY MUST act on the inconsistency. If the critical flag is not used, it
act on the inconsistency. Acting on the inconsistency may involve MAY act on the inconsistency. Acting on the inconsistency may
rejecting the timestamp, or resolving the inconsistency via involve rejecting the timestamp or resolving the inconsistency via
additional information such as user input and/or programmed behavior. additional information, such as user input and/or programmed
behavior.
For example, the IXDTF timestamps in Figure 1 represent 00:14:07 UTC, For example, the IXDTF timestamps in Figure 1 represent 00:14:07 UTC,
indicating a local time with a time-offset of +00:00. However, indicating a local time with a time-offset of +00:00. However,
because Europe/London used offset +01:00 in July 2022, the timestamps because Europe/London used offset +01:00 in July 2022, the timestamps
are inconsistent in Figure 1, where the first case is one where the are inconsistent in Figure 1, where the first case is one where the
application MUST act on the inconsistency (the time zone suffix is application MUST act on the inconsistency (the time zone suffix is
marked critical), and the second case is one where it MAY act on it marked critical) and the second case is one where it MAY act on the
(time zone suffix is elective). inconsistency (the time zone suffix is elective).
2022-07-08T00:14:07+00:00[!Europe/London] 2022-07-08T00:14:07+00:00[!Europe/London]
2022-07-08T00:14:07+00:00[Europe/London] 2022-07-08T00:14:07+00:00[Europe/London]
Figure 1: Inconsistent IXDTF timestamps Figure 1: Inconsistent IXDTF Timestamps
As per Section 4.3 of [RFC3339] as updated by Section 2, IXDTF As per Section 4.3 of [RFC3339] as updated by Section 2, IXDTF
timestamps may also forego indicating local time information in their timestamps may also forego indicating local time information in their
[RFC3339] part by using Z instead of a numeric time zone offset. The [RFC3339] part by using Z instead of a numeric time zone offset. The
IXDTF timestamps in Figure 2 (which represent the same instant in IXDTF timestamps in Figure 2 (which represent the same instant in
time as the strings in Figure 1) are not inconsistent because they do time as the strings in Figure 1) are not inconsistent because they do
not assert any particular local time nor local offset in their not assert any particular local time nor local offset in their
[RFC3339] part. Instead, applications that receive these strings can [RFC3339] part. Instead, applications that receive these strings can
calculate the local offset and local time using the rules of the time calculate the local offset and local time using the rules of the time
zone suffix, such as Europe/London in the example in Figure 2, which zone suffix, such as Europe/London in the example in Figure 2, which
like Figure 1 has a case with a time zone suffix marked critical, like Figure 1 has a case with a time zone suffix marked critical
i.e., the intention is that the application must understand the time (i.e., the intention is that the application must understand the time
zone information, and one marked elective, which then only is zone information) and one marked elective, which then only is
provided as additional information. provided as additional information.
2022-07-08T00:14:07Z[!Europe/London] 2022-07-08T00:14:07Z[!Europe/London]
2022-07-08T00:14:07Z[Europe/London] 2022-07-08T00:14:07Z[Europe/London]
Figure 2: No inconsistency in IXDTF timestamps Figure 2: No Inconsistency in IXDTF Timestamps
Note that -00:00 may be used instead of Z, because they have the same Note that -00:00 may be used instead of Z because they have the same
meaning according to Section 2, but -00:00 is not allowed by meaning according to Section 2, but -00:00 is not allowed by
[ISO8601:2000] and later so Z is preferred. [ISO8601:2000] and later so Z is preferred.
4. Syntax Extensions to RFC 3339 4. Syntax Extensions to RFC 3339
4.1. ABNF 4.1. ABNF
The following rules extend the ABNF syntax defined in [RFC3339] in The following rules extend the ABNF syntax defined in [RFC3339] in
order to allow the inclusion of an optional suffix. order to allow the inclusion of an optional suffix.
The Internet Extended Date/Time Format (IXDTF) is described by the The Internet Extended Date/Time Format (IXDTF) is described by the
rule date-time-ext. rule date-time-ext.
date-time and time-numoffset are imported from Section 5.6 of date-time and time-numoffset are imported from Section 5.6 of
[RFC3339], ALPHA and DIGIT from Appendix B.1 of [RFC5234]. [RFC3339], and ALPHA and DIGIT are imported from Appendix B.1 of
[RFC5234].
time-zone-initial = ALPHA / "." / "_" time-zone-initial = ALPHA / "." / "_"
time-zone-char = time-zone-initial / DIGIT / "-" / "+" time-zone-char = time-zone-initial / DIGIT / "-" / "+"
time-zone-part = time-zone-initial *time-zone-char time-zone-part = time-zone-initial *time-zone-char
; but not "." or ".." ; but not "." or ".."
time-zone-name = time-zone-part *("/" time-zone-part) time-zone-name = time-zone-part *("/" time-zone-part)
time-zone = "[" critical-flag time-zone = "[" critical-flag
time-zone-name / time-numoffset "]" time-zone-name / time-numoffset "]"
key-initial = lcalpha / "_" key-initial = lcalpha / "_"
skipping to change at page 13, line 30 skipping to change at line 562
suffix-key "=" suffix-values "]" suffix-key "=" suffix-values "]"
suffix = [time-zone] *suffix-tag suffix = [time-zone] *suffix-tag
date-time-ext = date-time suffix date-time-ext = date-time suffix
critical-flag = [ "!" ] critical-flag = [ "!" ]
alphanum = ALPHA / DIGIT alphanum = ALPHA / DIGIT
lcalpha = %x61-7A lcalpha = %x61-7A
Figure 3: ABNF grammar of extensions to RFC 3339 Figure 3: ABNF Grammar of Extensions to RFC 3339
Note that a time-zone is syntactically similar to a suffix-tag, but Note that a time-zone is syntactically similar to a suffix-tag but
does not include an equals sign. This special case is only available does not include an equals sign. This special case is only available
for time zone tags. for time zone tags.
The ABNF definition of time-zone-part matches "." and "..", which The ABNF definition of time-zone-part matches "." and "..", which
however both are explicitly excluded (see also comment on time-zone- both are explicitly excluded (see the note below on time-zone-part).
part).
time-zone-name is intended to be the name of an IANA Time Zone. As time-zone-name is intended to be the name of an IANA Time Zone. As a
generator and recipient may be using different revisions of the Time generator and recipient may be using different revisions of the Time
Zone Database, recipients may not be aware of such an IANA Time Zone Zone Database, recipients may not be aware of such an IANA Time Zone
name and should treat such a situation as any other inconsistency. name and should treat such a situation as any other inconsistency.
| Note: At the time of writing, the length of each time-zone-part | Note: At the time of writing, the length of each time-zone-part
| is limited to a maximum of 14 characters by the rules in | is limited to a maximum of 14 characters by the rules in
| [TZDB-NAMING]. One platform is known to enforce this limit, an | [TZDB-NAMING]. One platform is known to enforce this limit,
| entry in a timezone database on another platform is known to | and an entry in a Time Zone Database on another platform is
| exceed this limit. As the time-zone-name will ultimately have | known to exceed this limit. As the time-zone-name will
| to be looked up in the database, which therefore has control | ultimately have to be looked up in the database, which
| over the length, the time-zone-part production in Figure 3 is | therefore has control over the length, the time-zone-part
| deliberately permissive. | production in Figure 3 is deliberately permissive.
4.2. Examples 4.2. Examples
Here are some examples of Internet Extended Date/Time Format (IXDTF). This section contains some examples of Internet Extended Date/Time
Format (IXDTF).
1996-12-19T16:39:57-08:00 1996-12-19T16:39:57-08:00
Figure 4: RFC 3339 date-time with time zone offset Figure 4: RFC 3339 date-time with Time Zone Offset
Figure 4 represents 39 minutes and 57 seconds after the 16th hour of Figure 4 represents 39 minutes and 57 seconds after the 16th hour of
December 19th, 1996 with an offset of -08:00 from UTC. Note that December 19, 1996, with an offset of -08:00 from UTC. Note that this
this is the same instant in time as 1996-12-20T00:39:57Z, expressed is the same instant in time as 1996-12-20T00:39:57Z, expressed in
in UTC. UTC.
1996-12-19T16:39:57-08:00[America/Los_Angeles] 1996-12-19T16:39:57-08:00[America/Los_Angeles]
Figure 5: Adding a time zone name Figure 5: Adding a Time Zone Name
Figure 5 represents the exact same instant in time as the previous Figure 5 represents the exact same instant in time as the previous
example but additionally specifies the human time zone associated example but additionally specifies the human time zone associated
with it ("Pacific Time") for time-zone-aware applications to take with it ("Pacific Time") for time-zone-aware applications to take
into account. into account.
1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew] 1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew]
Figure 6: Projecting to the Hebrew calendar Figure 6: Projecting to the Hebrew Calendar
Figure 6 represents the exact same instant in time, but it informs Figure 6 represents the exact same instant in time, but it informs
calendar-aware applications (see Section 5) that they should project calendar-aware applications (see Section 5) that they should project
it to the Hebrew calendar. it to the Hebrew calendar.
1996-12-19T16:39:57-08:00[_foo=bar][_baz=bat] 1996-12-19T16:39:57-08:00[_foo=bar][_baz=bat]
Figure 7: Adding experimental tags Figure 7: Adding Experimental Tags
Figure 7, based on Figure 4, utilizes keys identified as experimental Figure 7, based on Figure 4, utilizes keys identified as experimental
by a leading underscore to declare two additional pieces of by a leading underscore to declare two additional pieces of
information in the suffix; these can be interpreted by information in the suffix; these can be interpreted by
implementations that take part in the controlled experiment making implementations that take part in the controlled experiment making
use of these tag keys. use of these tag keys.
5. The u-ca Suffix Key: Calendar Awareness 5. The u-ca Suffix Key: Calendar Awareness
Out of the possible suffix keys, the suffix key u-ca is allocated to Out of the possible suffix keys, the suffix key u-ca is allocated to
indicate the calendar in which the date/time is preferably presented. indicate the calendar in which the date/time is preferably presented.
A calendar is a set of rules defining how dates are counted and A calendar is a set of rules defining how dates are counted and
consumed by implementations. The set of suffix values allowed for consumed by implementations. The set of suffix values allowed for
this suffix key is the set of values defined for the Unicode Calendar this suffix key is the set of values defined for the Unicode Calendar
Identifier [TR35]. A resource that has been built to provide links Identifier [TR35]. [CLDR-LINKS] provides links to the most recent
into the most recent stable and development [CLDR] information about information about [CLDR], both stable and specific development
that is provided by [CLDR-LINKS]. stages.
6. IANA Considerations 6. IANA Considerations
// RFC Editor: please replace RFCthis with the RFC number of this RFC IANA has created a registry called "Timestamp Suffix Tag Keys" in a
// and remove this note. new registry group titled "Internet Date/Time Format". Each entry in
the registry shall consist of the information described in
IANA is requested to establish a registry called "Timestamp Suffix Section 3.2. The initial contents of the registry are specified in
Tag Keys" in a new registry group "Internet Date/Time Format". Each
entry in the registry shall consist of the information described in
Section 3.2. Initial contents of the registry are specified in
Table 1. Table 1.
+============+==============+==============+============+=========+ +============+==============+==============+============+=========+
| Key | Registration | Description: | Change |Reference| | Key | Registration | Description | Change |Reference|
| Identifier | status | | controller | | | Identifier | Status | | Controller | |
+============+==============+==============+============+=========+ +============+==============+==============+============+=========+
| u-ca | Permanent | Preferred | IESG |Section 5| | u-ca | Permanent | Preferred | IETF |Section 5|
| | | Calendar for | |of | | | | Calendar for | |of RFC |
| | | Presentation | |RFCthis | | | | Presentation | |9557 |
+------------+--------------+--------------+------------+---------+ +------------+--------------+--------------+------------+---------+
Table 1: Initial Content of Timestamp Suffix Tag Keys registry Table 1: Initial Contents of Timestamp Suffix Tag Keys Registry
The registration policy [BCP26] is "Specification Required" for The registration policy [BCP26] is "Specification Required" for
permanent entries, and "Expert Review" for provisional ones. In the permanent entries and "Expert Review" for provisional ones. In the
second case, the expert is instructed to ascertain that a basic second case, the experts are instructed to ascertain that a basic
specification does exist, even if not complete or published yet. specification does exist, even if not complete or published yet.
The experts also are instructed to be frugal in the allocation of key The experts are also instructed to be frugal in the allocation of key
identifiers that are suggestive of generally applicable semantics, identifiers that are suggestive of generally applicable semantics,
keeping them in reserve for suffix keys that are likely to enjoy wide keeping them in reserve for suffix keys that are likely to enjoy wide
use and can make good use of the key identifier's conciseness. If use and can make good use of the key identifier's conciseness. If
the experts become aware of key identifiers that are deployed and in the experts become aware of key identifiers that are deployed and in
use, they may also initiate a registration on their own if they deem use, they may also initiate a registration on their own if they deem
such a registration can avert potential future collisions. such a registration can avert potential future collisions.
7. Security Considerations 7. Security Considerations
7.1. Excessive Disclosure 7.1. Excessive Disclosure
The ability to include various pieces of ancillary information with a The ability to include various pieces of ancillary information with a
timestamp might lead to excessive disclosure. An example for timestamp might lead to excessive disclosure. An example for
possibly excessive disclosure is given in Section 7 of [RFC3339]. possibly excessive disclosure is given in Section 7 of [RFC3339].
Similarly, divulging information about the calendar system or the Similarly, divulging information about the calendar system or the
language of choice may provide more information about the originator language of choice may provide more information about the originator
of a timestamp than the data minimization principle would permit of a timestamp than the data minimization principle would permit
[DATA-MINIMIZATION]. More generally speaking, generators of IXDTF [DATA-MINIMIZATION]. More generally speaking, generators of IXDTF
timestamps need to consider whether information to be added to the timestamps need to consider whether information to be added to the
timestamp is appropriate to divulge to the recipients of this timestamp is appropriate to divulge to the recipients of this
information, and need to err on the side of minimizing such information and need to err on the side of minimizing such disclosure
disclosure if the set of recipients is not under control of the if the set of recipients is not under control of the originator.
originator.
7.2. Data Format Implementation Vulnerabilities 7.2. Data Format Implementation Vulnerabilities
As usual when extending the syntax of a data format, this can lead to As usual when extending the syntax of a data format, this can lead to
new vulnerabilities in implementations parsing and processing the new vulnerabilities in implementations parsing and processing the
format. No considerations are known for the IXDTF syntax that would format. No considerations are known for the IXDTF syntax that would
pose concerns that are out of the ordinary. pose concerns that are out of the ordinary.
7.3. Operating with Inconsistent Data 7.3. Operating with Inconsistent Data
Information provided in the various parts of an IXDTF string may be Information provided in the various parts of an IXDTF string may be
inconsistent in interesting ways, both with the extensions defined in inconsistent in interesting ways, both with the extensions defined in
this specification (see for instance Section 3.4) and with future this specification (for instance, see Section 3.4) and with future
extensions still to be defined. Where consistent interpretation extensions still to be defined. Where consistent interpretation
between multiple actors is required for security purposes (e.g., between multiple actors is required for security purposes (e.g.,
where timestamps are embedded as parameters in access control where timestamps are embedded as parameters in access control
information), only those extensions can be employed that have a well- information), only extensions that have a well-understood and shared
understood and shared resolution of such inconsistent data. resolution of such inconsistent data can be employed.
8. References 8. References
8.1. Normative References 8.1. Normative References
[BCP175] Lear, E. and P. Eggert, "Procedures for Maintaining the [BCP175] Best Current Practice 175,
<https://www.rfc-editor.org/info/bcp175>.
At the time of writing, this BCP comprises the following:
Lear, E. and P. Eggert, "Procedures for Maintaining the
Time Zone Database", BCP 175, RFC 6557, Time Zone Database", BCP 175, RFC 6557,
DOI 10.17487/RFC6557, February 2012, DOI 10.17487/RFC6557, February 2012,
<https://www.rfc-editor.org/rfc/rfc6557>. <https://www.rfc-editor.org/info/rfc6557>.
[BCP178] Saint-Andre, P., Crocker, D., and M. Nottingham, [BCP178] Best Current Practice 178,
<https://www.rfc-editor.org/info/bcp178>.
At the time of writing, this BCP comprises the following:
Saint-Andre, P., Crocker, D., and M. Nottingham,
"Deprecating the "X-" Prefix and Similar Constructs in "Deprecating the "X-" Prefix and Similar Constructs in
Application Protocols", BCP 178, RFC 6648, Application Protocols", BCP 178, RFC 6648,
DOI 10.17487/RFC6648, June 2012, DOI 10.17487/RFC6648, June 2012,
<https://www.rfc-editor.org/rfc/rfc6648>. <https://www.rfc-editor.org/info/rfc6648>.
[BCP26] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [BCP26] Best Current Practice 26,
<https://www.rfc-editor.org/info/bcp26>.
At the time of writing, this BCP comprises the following:
Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/rfc/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/rfc/rfc3339>. <https://www.rfc-editor.org/info/rfc3339>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008, DOI 10.17487/RFC5234, January 2008,
<https://www.rfc-editor.org/rfc/rfc5234>. <https://www.rfc-editor.org/info/rfc5234>.
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type
Specifications and Registration Procedures", BCP 13, Specifications and Registration Procedures", BCP 13,
RFC 6838, DOI 10.17487/RFC6838, January 2013, RFC 6838, DOI 10.17487/RFC6838, January 2013,
<https://www.rfc-editor.org/rfc/rfc6838>. <https://www.rfc-editor.org/info/rfc6838>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
8.2. Informative References 8.2. Informative References
[CLDR] "Unicode CLDR Project", <https://cldr.unicode.org>. [CLDR] Unicode CLDR, "Unicode CLDR Project",
<https://cldr.unicode.org>.
[CLDR-LINKS] [CLDR-LINKS]
Unicode CLDR, "Stable Links Info", Unicode CLDR, "Stable Links Info",
<https://cldr.unicode.org/stable-links-info>. <https://cldr.unicode.org/stable-links-info>.
[DATA-MINIMIZATION] [DATA-MINIMIZATION]
Arkko, J., "Emphasizing data minimization among protocol Arkko, J., "Emphasizing data minimization among protocol
participants", Work in Progress, Internet-Draft, draft- participants", Work in Progress, Internet-Draft, draft-
arkko-iab-data-minimization-principle-05, 10 July 2023, arkko-iab-data-minimization-principle-05, 10 July 2023,
<https://datatracker.ietf.org/doc/html/draft-arkko-iab- <https://datatracker.ietf.org/doc/html/draft-arkko-iab-
data-minimization-principle-05>. data-minimization-principle-05>.
[ICAO-PA] International Civil Aviation Organization, "Annex 10 to [ICAO-PA] International Civil Aviation Organization, "Annex 10 to
the Convention on International Civil Aviation: the Convention on International Civil Aviation:
Aeronautical Telecommunications; Volume II Communication Aeronautical Telecommunications; Volume II Communication
Procedures including those with PANS status (7th ed.)", Procedures including those with PANS status", 7th ed.,
July 2016, <https://store.icao.int/annex-10-aeronautical- July 2016, <https://store.icao.int/annex-10-aeronautical-
telecommunications-volume-ii-communication-procedures- telecommunications-volume-ii-communication-procedures-
including-those-with-pans-status>. including-those-with-pans-status>.
[IERS] "International Earth Rotation Service Bulletins", [IERS] IERS, "International Earth Rotation Service Bulletins",
<https://www.iers.org/IERS/EN/Publications/Bulletins/ <https://www.iers.org/IERS/EN/Publications/Bulletins/
bulletins.html>. bulletins.html>.
[ISO8601-1:2019] [ISO8601-1:2019]
ISO, "Date and time Representations for information ISO, "Date and time -- Representations for information
interchange Part 1: Basic rules", ISO 8601-1:2019, interchange -- Part 1: Basic rules", ISO 8601-1:2019,
February 2019, <https://www.iso.org/standard/70907.html>. February 2019, <https://www.iso.org/standard/70907.html>.
[ISO8601:1988] [ISO8601:1988]
ISO, "Data elements and interchange formats Information ISO, "Data elements and interchange formats -- Information
interchange Representation of dates and times", interchange -- Representation of dates and times",
ISO 8601:1988, June 1988, ISO 8601:1988, June 1988,
<https://www.iso.org/standard/15903.html>. Also available <https://www.iso.org/standard/15903.html>. Also available
from <https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/ from <https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/
fipspub4-1-1991.pdf fipspub4-1-1991.pdf>.
(https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/
fipspub4-1-1991.pdf)>.
[ISO8601:2000] [ISO8601:2000]
ISO, "Data elements and interchange formats Information ISO, "Data elements and interchange formats -- Information
interchange Representation of dates and times", interchange -- Representation of dates and times",
ISO 8601:2000, December 2000, ISO 8601:2000, December 2000,
<https://www.iso.org/standard/26780.html>. <https://www.iso.org/standard/26780.html>.
[ITU-R-TF.460-6] [ITU-R-TF.460-6]
"ITU-R TF.460-6. Standard-frequency and time-signal ITU-R, "Standard-frequency and time-signal emissions",
emissions", February 2002, ITU-R Recommendation TF.460-6, February 2002,
<https://www.itu.int/rec/R-REC-TF.460/en>. <https://www.itu.int/rec/R-REC-TF.460/en>.
[JAVAZDT] "Java SE 8, java.time.format, DateTimeFormatter: [JAVAZDT] Oracle, "Class DateTimeFormatter: ISO_ZONED_DATE_TIME",
ISO_ZONED_DATE_TIME",
<https://docs.oracle.com/javase/8/docs/api/java/time/ <https://docs.oracle.com/javase/8/docs/api/java/time/
format/DateTimeFormatter.html#ISO_ZONED_DATE_TIME>. format/DateTimeFormatter.html#ISO_ZONED_DATE_TIME>.
[RFC1305] Mills, D., "Network Time Protocol (Version 3) [RFC1305] Mills, D., "Network Time Protocol (Version 3)
Specification, Implementation and Analysis", RFC 1305, Specification, Implementation and Analysis", RFC 1305,
DOI 10.17487/RFC1305, March 1992, DOI 10.17487/RFC1305, March 1992,
<https://www.rfc-editor.org/rfc/rfc1305>. <https://www.rfc-editor.org/info/rfc1305>.
[RFC2822] Resnick, P., Ed., "Internet Message Format", RFC 2822, [RFC2822] Resnick, P., Ed., "Internet Message Format", RFC 2822,
DOI 10.17487/RFC2822, April 2001, DOI 10.17487/RFC2822, April 2001,
<https://www.rfc-editor.org/rfc/rfc2822>. <https://www.rfc-editor.org/info/rfc2822>.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
DOI 10.17487/RFC5322, October 2008, DOI 10.17487/RFC5322, October 2008,
<https://www.rfc-editor.org/rfc/rfc5322>. <https://www.rfc-editor.org/info/rfc5322>.
[TR35] "Unicode Technical Standard #35: Unicode Locale Data [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
Markup Language (LDML)", <https://www.unicode.org/reports/ "Network Time Protocol Version 4: Protocol and Algorithms
Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010,
<https://www.rfc-editor.org/info/rfc5905>.
[TR35] Davis, M., Ed., "Unicode Technical Standard #35: Unicode
Locale Data Markup Language (LDML)",
<https://www.unicode.org/reports/
tr35/#UnicodeCalendarIdentifier>. tr35/#UnicodeCalendarIdentifier>.
[TZDB] "Sources for time zone and daylight saving time data", [TZDB] IANA, "Time zone and daylight saving time data",
<https://data.iana.org/time-zones/tz-link.html>. <https://data.iana.org/time-zones/tz-link.html>.
[TZDB-NAMING] [TZDB-NAMING]
"Theory and pragmatics of the tz code and data", IANA, "Theory and pragmatics of the tz code and data",
<https://data.iana.org/time-zones/theory.html>. <https://data.iana.org/time-zones/theory.html>.
Acknowledgements Acknowledgements
This specification benefits from work prepared by ECMA TC39,
specifically in the Temporal proposal.
Richard Gibson and Justin Grant provided editorial improvements. The Richard Gibson and Justin Grant provided editorial improvements. The
authors would like to thank Francesca Palombini for her AD review. SEDATE WG Chairs Mark McFadden and Bron Gondwana, the latter also in
his role as CALEXT WG Chair, helped set up the structures needed to
navigate the multi-SDO environment. John Klensin critically
accompanied the development of this specification, which led to
significant improvements. The authors would also like to especially
thank Francesca Palombini for her AD review and for her overall
guidance during the development process.
Contributors Contributors
Justin Grant Justin Grant
Email: justingrant.ietf.public@gmail.com Email: justingrant.ietf.public@gmail.com
Authors' Addresses Authors' Addresses
Ujjwal Sharma Ujjwal Sharma
Igalia, S.L. Igalia, S.L.
 End of changes. 123 change blocks. 
279 lines changed or deleted 293 lines changed or added

This html diff was produced by rfcdiff 1.48.