Skip to content

Invalid datetime.time.fromisoformat #124257

Description

@random1st

Bug report

Bug description:

According to the standard ISO 8601 Thus the value ‘24:00:00’ is chosen to represent the final instant of the day in order to distinguish the expression of this instant from an expression of a time scale unit.

>>> datetime.time.fromisoformat("24:00")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: hour must be in 0..23

Link to standard pdf

CPython versions tested on:

3.10, 3.12

Operating systems tested on:

Linux, macOS

Activity

  1. added
    stdlibStandard Library Python modules in the Lib/ directory
    on Sep 19, 2024
  2. eendebakpt commented on Sep 19, 2024

    @eendebakpt
    Contributor

    Some other discussions on supporting this: dotnet/runtime#12197, astropy/astropy#9837

    Also note the documentation of datetime.datetime.fromisoformat:

    Return a date corresponding to a date_string given in any valid ISO 8601 format, with the following

    The part "in any valid ISO 8601" suggest that fromisodate should support 24:00

  3. tomasr8 commented on Sep 19, 2024

    @tomasr8
    Member

    The part "in any valid ISO 8601" suggest that fromisodate should support 24:00

    On one hand it says any valid ISO 8601 format (which with the latest amendement to the spec 24:00 is). On the other hand, it also lists exceptions to the spec. Even though I think it would make sense to support 24:00, if it's decided against it, I think we should at least document this discrepancy in the docs

  4. hugovk commented on Sep 19, 2024

    @hugovk
    Member

    Is this a duplicate of #102450 (or #54636)?

  5. eendebakpt commented on Sep 19, 2024

    @eendebakpt
    Contributor

    There is an open PR to allow 24:00: #105856. I can review it (but it would be nice to know beforehand whether we actually want to allow 24:00).

    @pganssle @abalkin as code owners

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions