17
205
Fork
You've already forked human.json
6

RFC 3339 vs ISO 8601 #26

Open
opened 2026年03月18日 11:04:54 +01:00 by edent · 2 comments

This is minor pedantry.

Most Internet standards use RFC 3339 for timestamps. This is because ISO 8601 is a non-free standard; you have to pay quite a lot to be able to read it.

Given that human.json only uses YYYY-MM-DD, there's likely no problem swapping the standard. See https://ijmacd.github.io/rfc3339-iso8601/

This is minor pedantry. Most Internet standards use [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339) for timestamps. This is because ISO 8601 is a non-free standard; you have to pay quite a lot to be able to read it. Given that human.json only uses YYYY-MM-DD, there's likely no problem swapping the standard. See https://ijmacd.github.io/rfc3339-iso8601/

Ah, I didn't know. Let's update the spec.

Ah, I didn't know. Let's update the spec.

Wholeheartedly agree on swapping the standard referenced by human.json!

As the comparison page linked by @edent hilariously shows, the ISO monster leaves a lot of choices to the application/spec using it. RFC 3339 improves on this, but it, too, does not strictly define one format: For its date-time format, the date and time can be separated by T or t. But one could also use a space, an underscore, @, or really anything, maybe even multiple characters. (Spec quote, emphasis mine: "Applications using this syntax may choose, for the sake of readability, to specify a full-date and full-time separated by (say) a space character.")

Therefore, for interoperability, please not just reference the RFC, but specify the concrete format that human.json uses. Here's my suggestion:

RFC 3339 _full-date_ when the vouch was made

Adding a time value (as @robida implies in #33) introduces a lot more variation, as suddenly an implementation would have to deal with parsing the various offset variants, and probably deal gracefully with people forgetting to include the offset. So I would recommend not going there, but if it's desired, my suggestion would be this:

RFC 3339 _full-date_ when the vouch was made, optionally followed by a space character and an RFC 3339 _full-time_.

Wholeheartedly agree on swapping the standard referenced by human.json! As the comparison page linked by @edent hilariously shows, the ISO monster leaves a lot of choices to the application/spec using it. RFC 3339 improves on this, but it, too, does not strictly define one format: For its `date-time` format, the date and time can be separated by `T` or `t`. But one could also use a space, an underscore, `@`, or really anything, maybe even multiple characters. ([Spec quote](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), emphasis mine: "Applications using this syntax may choose, for the sake of readability, to specify a full-date and full-time separated by **(say)** a space character.") Therefore, for interoperability, please not just reference the RFC, but specify the concrete format that human.json uses. Here's my suggestion: > `RFC 3339 _full-date_ when the vouch was made` Adding a time value (as @robida implies in #33) introduces a lot more variation, as suddenly an implementation would have to deal with parsing the various offset variants, and probably deal gracefully with people forgetting to include the offset. So I would recommend not going there, but if it's desired, my suggestion would be this: > `RFC 3339 _full-date_ when the vouch was made, optionally followed by a space character and an RFC 3339 _full-time_.`
robida added this to the v0.2.0 milestone 2026年03月23日 23:36:08 +01:00
Sign in to join this conversation.
No Branch/Tag specified
main
spec-0.2.0
crawler
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
robida/human.json#26
Reference in a new issue
robida/human.json
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?