Skip to content

Update date-time formats to RFC 9557 #119

Open
TimvdLippe wants to merge 2 commits into
OAI:mainfrom
TimvdLippe:date-rfc
Open

Update date-time formats to RFC 9557 #119
TimvdLippe wants to merge 2 commits into
OAI:mainfrom
TimvdLippe:date-rfc

Conversation

@TimvdLippe

Copy link
Copy Markdown
Contributor

RFC 3339 is updated by RFC 9557. By specifying all formats as
RFC 9557, values in RFC 9557 format are now also allowed, not just values RFC 3339 format.

All entries also use consistent formatting and naming now,
including which URL to link to and what the source_label is.

RFC 3339 is updated by RFC 9557. By specifying all formats as
RFC 9557, values in RFC 9557 format are now also allowed, not
just values RFC 3339 format.

All entries also use consistent formatting and naming now,
including which URL to link to and what the `source_label` is.
@TimvdLippe TimvdLippe requested a review from a team as a code owner July 14, 2026 13:49
@miqui

miqui commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

note to self (just checking myself):

Section 4.1 of RFC 9557 explicitly updates the interpretation of the Z offset that was defined in RFC 3339 section 5.6, but it does not replace the whole section or its grammar.

What RFC 3339 5.6 says
Section 5.6 of RFC 3339 defines the ABNF productions for the date-time format (date-time, full-date, full-time, etc.) and includes the notion of an offset of Z to indicate UTC. In the original text, Z is described in a way that implies “UTC is the preferred reference point for the specified time” when that offset is used.

The RFC Editor and datatracker now mark RFC 3339 as “Updated by RFC 9557,” and the errata clarify that 3339’s productions can be referenced in different application contexts (full timestamps vs partial forms).

What RFC 9557 4.1 changes
RFC 9557 defines IXDTF as an extension of the RFC 3339 format, and section 4.1 specifically states that it “updates RFC 3339 in the specific interpretation of the local offset Z.” The key change is that Z is no longer understood to “imply that UTC is the preferred reference point for the specified time”; instead, it is simply the zero offset, without that extra semantic preference.

...so it seems that RFC 9557 4.1 updates the semantic interpretation of Z as defined in RFC 3339, narrowing or correcting that previous wording.

@miqui

miqui commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

so given my notes... does this

By specifying all formats as RFC 9557,

make sense?

@TimvdLippe

Copy link
Copy Markdown
Contributor Author

That's one of the changes, but the other one that is more useful in terms of format is the textual representation of timezones as suffix. See https://www.rfc-editor.org/rfc/rfc9557.html#section-3

E.g. RFC3339 leaves that open and RFC9557 defines an explicit syntax for it.

Maybe instead we should introduce a new format for date-time-ext if you feel uncomfortable updating the existing format? Existing values in RFC3339 could in theory also use the RFC9557 syntax, so it shouldn't be a breaking change. It's just that by making the choice for RFC9557 explicit in OAS, it is explicit which timezone suffix to use.

@karenetheridge karenetheridge left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

date, date-time, time and duration are formats defined in JSON Schema and we should not change them here, as compatibility is important.

@karenetheridge

karenetheridge commented Jul 14, 2026

Copy link
Copy Markdown
Member

I noticed that some of the data in these source files is not actually visible on the website - e.g. https://spec.openapis.org/registry/format/duration.html shows no mention of this format's definition being tied to JSON Schema, or the specific section of RFC3339 where the definition actually lives. We really should make that visible, as it's important to be able to see the source definition of the format.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants