Skip to content

Relaxed datetime/time parsing - #539

Merged
jcrist merged 1 commit into
mainfrom
relax-datetime-time-parsing
Aug 26, 2023
Merged

Relaxed datetime/time parsing#539
jcrist merged 1 commit into
mainfrom
relax-datetime-time-parsing

Conversation

@jcrist

@jcrist jcrist commented Aug 26, 2023

Copy link
Copy Markdown
Member

Previously we strictly followed the RFC3339 format when parsing datetime and time objects from strings. We now support a few common ISO8601 compatible relaxations:

  • A : isn't required as part of the timezone component in both datetime and time strings (2022-01-02T03:04:05.678+0102 and 2022-01-02T03:04:05.678+01:02 are treated the same).

  • A may be used instead of T/t as a separator between date and time components when parsing datetime strings (2022-01-02 03:04:05.678+01:02 and 2022-01-02T03:04:05.678+01:02 are treated the same).

When encoding datetime/time objects we still strictly follow RFC3339. This eases integrating msgspec with other systems that don't strictly follow RFC3339.

Fixes #537.

Previously we strictly followed the RFC3339 format when parsing datetime
and time objects from strings. We now support a few common ISO8601
compatible relaxations:

- A `:` isn't required as part of the timezone component in both
  datetime and time strings (`2022-01-02T03:04:05.678+0102` and
  `2022-01-02T03:04:05.678+01:02` are treated the same).

- A ` ` may be used instead of `T`/`t` as a separator between date and
  time components when parsing datetime strings.

When encoding datetime/time objects we still strictly follow RFC3339.
This eases integrating msgspec with other systems that don't strictly
follow RFC3339.
@jcrist
jcrist merged commit d95b33c into main Aug 26, 2023
@jcrist
jcrist deleted the relax-datetime-time-parsing branch August 26, 2023 20:25
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.

Add support for timezone without colon (similar to datetime)

1 participant