Edit history

ISO8601 timestamp input fields do not accept "+00:00" as zone designator, only "Z" has not been edited, so there are no earlier versions.

Current version | Original by Rex
Show

ISO8601 timestamp input fields do not accept "+00:00" as zone designator, only "Z"

Observed behaviour

The parser for ISO8601 is overly restrictive - it only allows "Z" as the zone designator but not "+00:00". While I can understand not wanting to support iso8601 timestamp in non-UTC timezones due to added complexity, it would be good to at least support both ways of specifying that the timestamp is in UTC that ISO8601 allows (since it's just a matter of expanding the regex for the zone designator part to be (Z|\+00:00) rather than just Z). Especially since some programming languages may choose to output ISO8601 timestamps with +00:00 rather than Z (as is the case in Python's datetime.datetime.isoformat(), for example). Also, limitations of what can be parsed should be documented.

Reproduction steps

  1. Make an API request to any endpoint requring ISO8601 timestamp with a "+00:00" instead of "Z" use as the zone designator, e.g. "2026-09-07T18:33:12.120000+00:00"
  2. See "The provided value is in an invalid format" error returned by the API.
As a concrete example:
PATCH /guilds/{guild.id}/members/{member.id}

{"communication_disabled_until":"2026-09-07T18:33:12.120000+00:00"}
Results in:
{
    "code": "INVALID_FORM_BODY",
    "message": "Invalid form body.",
    "errors": [
        {
            "path": "communication_disabled_until",
            "message": "The provided value is in an invalid format.",
            "code": "INVALID_FORMAT"
        }
    ]
}

Build information

This is an API issue, so not relevant.

Platform

API

Evidence

Everything relevant has already been presented above.