Skip to content

pendulum.parse() consistently fails on the last day of each month with iso week dates in 3.0.0 #836

Open

Description

@dav1dn
  • I am on the latest Pendulum version.

  • I have searched the issues of this repo and believe that this is not a duplicate.

  • Pendulum version: 3.0.0

Issue

When parsing iso week dates, .parse() consistently raises a ParseError for the last day of each month:

>>> pendulum.parse('2024-W31-3')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".pyenv/versions/chronicler/lib/python3.11/site-packages/pendulum/parser.py", line 30, in parse
    return _parse(text, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File ".pyenv/versions/chronicler/lib/python3.11/site-packages/pendulum/parser.py", line 43, in _parse
    parsed = base_parse(text, **options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".pyenv/versions/chronicler/lib/python3.11/site-packages/pendulum/parsing/__init__.py", line 78, in parse
    return _normalize(_parse(text, **_options), **_options)
                      ^^^^^^^^^^^^^^^^^^^^^^^^
  File ".pyenv/versions/chronicler/lib/python3.11/site-packages/pendulum/parsing/__init__.py", line 125, in _parse
    raise ParserError(f"Unable to parse string [{text}]")
pendulum.parsing.exceptions.ParserError: Unable to parse string [2024-W31-3]

This issue was not present in 3.0.0a.

This issue seems to only occur with the extension version of the parse_iso8601 function, and not with the native Python implementation:

>>> from pendulum._pendulum import parse_iso8601
>>> parse_iso8601('2024-W31-3')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: day is out of range for month
>>> from pendulum.parsing.iso8601 import parse_iso8601
>>> parse_iso8601('2024-W31-3')
datetime.date(2024, 7, 31)

Reproduction table:

import pendulum
import dateutil.parser
def test(isoweek_str):
    parser_result = dateutil.parser.isoparse(isoweek_str).isoformat()
    try:
        out = pendulum.parse(isoweek_str)
        return (isoweek_str, "true", out.isoformat(), parser_result)
    except:
        return (isoweek_str, "false", "", parser_result)


for wk in range(1, 54):
    for dow in range(1, 8):
            test_str = f"2024-W{wk:02}-{dow}"
            print(f"|{'|'.join(test(test_str))}|")
isoweek string parses pendulum isoformat parser isoformat
2024-W01-1 true 2024-01-01T00:00:00+00:00 2024-01-01T00:00:00
2024-W01-2 true 2024-01-02T00:00:00+00:00 2024-01-02T00:00:00
2024-W01-3 true 2024-01-03T00:00:00+00:00 2024-01-03T00:00:00
2024-W01-4 true 2024-01-04T00:00:00+00:00 2024-01-04T00:00:00
2024-W01-5 true 2024-01-05T00:00:00+00:00 2024-01-05T00:00:00
2024-W01-6 true 2024-01-06T00:00:00+00:00 2024-01-06T00:00:00
2024-W01-7 true 2024-01-07T00:00:00+00:00 2024-01-07T00:00:00
2024-W02-1 true 2024-01-08T00:00:00+00:00 2024-01-08T00:00:00
2024-W02-2 true 2024-01-09T00:00:00+00:00 2024-01-09T00:00:00
2024-W02-3 true 2024-01-10T00:00:00+00:00 2024-01-10T00:00:00
2024-W02-4 true 2024-01-11T00:00:00+00:00 2024-01-11T00:00:00
2024-W02-5 true 2024-01-12T00:00:00+00:00 2024-01-12T00:00:00
2024-W02-6 true 2024-01-13T00:00:00+00:00 2024-01-13T00:00:00
2024-W02-7 true 2024-01-14T00:00:00+00:00 2024-01-14T00:00:00
2024-W03-1 true 2024-01-15T00:00:00+00:00 2024-01-15T00:00:00
2024-W03-2 true 2024-01-16T00:00:00+00:00 2024-01-16T00:00:00
2024-W03-3 true 2024-01-17T00:00:00+00:00 2024-01-17T00:00:00
2024-W03-4 true 2024-01-18T00:00:00+00:00 2024-01-18T00:00:00
2024-W03-5 true 2024-01-19T00:00:00+00:00 2024-01-19T00:00:00
2024-W03-6 true 2024-01-20T00:00:00+00:00 2024-01-20T00:00:00
2024-W03-7 true 2024-01-21T00:00:00+00:00 2024-01-21T00:00:00
2024-W04-1 true 2024-01-22T00:00:00+00:00 2024-01-22T00:00:00
2024-W04-2 true 2024-01-23T00:00:00+00:00 2024-01-23T00:00:00
2024-W04-3 true 2024-01-24T00:00:00+00:00 2024-01-24T00:00:00
2024-W04-4 true 2024-01-25T00:00:00+00:00 2024-01-25T00:00:00
2024-W04-5 true 2024-01-26T00:00:00+00:00 2024-01-26T00:00:00
2024-W04-6 true 2024-01-27T00:00:00+00:00 2024-01-27T00:00:00
2024-W04-7 true 2024-01-28T00:00:00+00:00 2024-01-28T00:00:00
2024-W05-1 true 2024-01-29T00:00:00+00:00 2024-01-29T00:00:00
2024-W05-2 true 2024-01-30T00:00:00+00:00 2024-01-30T00:00:00
2024-W05-3 false 2024-01-31T00:00:00
2024-W05-4 true 2024-02-01T00:00:00+00:00 2024-02-01T00:00:00
2024-W05-5 true 2024-02-02T00:00:00+00:00 2024-02-02T00:00:00
2024-W05-6 true 2024-02-03T00:00:00+00:00 2024-02-03T00:00:00
2024-W05-7 true 2024-02-04T00:00:00+00:00 2024-02-04T00:00:00
2024-W06-1 true 2024-02-05T00:00:00+00:00 2024-02-05T00:00:00
2024-W06-2 true 2024-02-06T00:00:00+00:00 2024-02-06T00:00:00
2024-W06-3 true 2024-02-07T00:00:00+00:00 2024-02-07T00:00:00
2024-W06-4 true 2024-02-08T00:00:00+00:00 2024-02-08T00:00:00
2024-W06-5 true 2024-02-09T00:00:00+00:00 2024-02-09T00:00:00
2024-W06-6 true 2024-02-10T00:00:00+00:00 2024-02-10T00:00:00
2024-W06-7 true 2024-02-11T00:00:00+00:00 2024-02-11T00:00:00
2024-W07-1 true 2024-02-12T00:00:00+00:00 2024-02-12T00:00:00
2024-W07-2 true 2024-02-13T00:00:00+00:00 2024-02-13T00:00:00
2024-W07-3 true 2024-02-14T00:00:00+00:00 2024-02-14T00:00:00
2024-W07-4 true 2024-02-15T00:00:00+00:00 2024-02-15T00:00:00
2024-W07-5 true 2024-02-16T00:00:00+00:00 2024-02-16T00:00:00
2024-W07-6 true 2024-02-17T00:00:00+00:00 2024-02-17T00:00:00
2024-W07-7 true 2024-02-18T00:00:00+00:00 2024-02-18T00:00:00
2024-W08-1 true 2024-02-19T00:00:00+00:00 2024-02-19T00:00:00
2024-W08-2 true 2024-02-20T00:00:00+00:00 2024-02-20T00:00:00
2024-W08-3 true 2024-02-21T00:00:00+00:00 2024-02-21T00:00:00
2024-W08-4 true 2024-02-22T00:00:00+00:00 2024-02-22T00:00:00
2024-W08-5 true 2024-02-23T00:00:00+00:00 2024-02-23T00:00:00
2024-W08-6 true 2024-02-24T00:00:00+00:00 2024-02-24T00:00:00
2024-W08-7 true 2024-02-25T00:00:00+00:00 2024-02-25T00:00:00
2024-W09-1 true 2024-02-26T00:00:00+00:00 2024-02-26T00:00:00
2024-W09-2 true 2024-02-27T00:00:00+00:00 2024-02-27T00:00:00
2024-W09-3 true 2024-02-28T00:00:00+00:00 2024-02-28T00:00:00
2024-W09-4 false 2024-02-29T00:00:00
2024-W09-5 true 2024-03-01T00:00:00+00:00 2024-03-01T00:00:00
2024-W09-6 true 2024-03-02T00:00:00+00:00 2024-03-02T00:00:00
2024-W09-7 true 2024-03-03T00:00:00+00:00 2024-03-03T00:00:00
2024-W10-1 true 2024-03-04T00:00:00+00:00 2024-03-04T00:00:00
2024-W10-2 true 2024-03-05T00:00:00+00:00 2024-03-05T00:00:00
2024-W10-3 true 2024-03-06T00:00:00+00:00 2024-03-06T00:00:00
2024-W10-4 true 2024-03-07T00:00:00+00:00 2024-03-07T00:00:00
2024-W10-5 true 2024-03-08T00:00:00+00:00 2024-03-08T00:00:00
2024-W10-6 true 2024-03-09T00:00:00+00:00 2024-03-09T00:00:00
2024-W10-7 true 2024-03-10T00:00:00+00:00 2024-03-10T00:00:00
2024-W11-1 true 2024-03-11T00:00:00+00:00 2024-03-11T00:00:00
2024-W11-2 true 2024-03-12T00:00:00+00:00 2024-03-12T00:00:00
2024-W11-3 true 2024-03-13T00:00:00+00:00 2024-03-13T00:00:00
2024-W11-4 true 2024-03-14T00:00:00+00:00 2024-03-14T00:00:00
2024-W11-5 true 2024-03-15T00:00:00+00:00 2024-03-15T00:00:00
2024-W11-6 true 2024-03-16T00:00:00+00:00 2024-03-16T00:00:00
2024-W11-7 true 2024-03-17T00:00:00+00:00 2024-03-17T00:00:00
2024-W12-1 true 2024-03-18T00:00:00+00:00 2024-03-18T00:00:00
2024-W12-2 true 2024-03-19T00:00:00+00:00 2024-03-19T00:00:00
2024-W12-3 true 2024-03-20T00:00:00+00:00 2024-03-20T00:00:00
2024-W12-4 true 2024-03-21T00:00:00+00:00 2024-03-21T00:00:00
2024-W12-5 true 2024-03-22T00:00:00+00:00 2024-03-22T00:00:00
2024-W12-6 true 2024-03-23T00:00:00+00:00 2024-03-23T00:00:00
2024-W12-7 true 2024-03-24T00:00:00+00:00 2024-03-24T00:00:00
2024-W13-1 true 2024-03-25T00:00:00+00:00 2024-03-25T00:00:00
2024-W13-2 true 2024-03-26T00:00:00+00:00 2024-03-26T00:00:00
2024-W13-3 true 2024-03-27T00:00:00+00:00 2024-03-27T00:00:00
2024-W13-4 true 2024-03-28T00:00:00+00:00 2024-03-28T00:00:00
2024-W13-5 true 2024-03-29T00:00:00+00:00 2024-03-29T00:00:00
2024-W13-6 true 2024-03-30T00:00:00+00:00 2024-03-30T00:00:00
2024-W13-7 false 2024-03-31T00:00:00
2024-W14-1 true 2024-04-01T00:00:00+00:00 2024-04-01T00:00:00
2024-W14-2 true 2024-04-02T00:00:00+00:00 2024-04-02T00:00:00
2024-W14-3 true 2024-04-03T00:00:00+00:00 2024-04-03T00:00:00
2024-W14-4 true 2024-04-04T00:00:00+00:00 2024-04-04T00:00:00
2024-W14-5 true 2024-04-05T00:00:00+00:00 2024-04-05T00:00:00
2024-W14-6 true 2024-04-06T00:00:00+00:00 2024-04-06T00:00:00
2024-W14-7 true 2024-04-07T00:00:00+00:00 2024-04-07T00:00:00
2024-W15-1 true 2024-04-08T00:00:00+00:00 2024-04-08T00:00:00
2024-W15-2 true 2024-04-09T00:00:00+00:00 2024-04-09T00:00:00
2024-W15-3 true 2024-04-10T00:00:00+00:00 2024-04-10T00:00:00
2024-W15-4 true 2024-04-11T00:00:00+00:00 2024-04-11T00:00:00
2024-W15-5 true 2024-04-12T00:00:00+00:00 2024-04-12T00:00:00
2024-W15-6 true 2024-04-13T00:00:00+00:00 2024-04-13T00:00:00
2024-W15-7 true 2024-04-14T00:00:00+00:00 2024-04-14T00:00:00
2024-W16-1 true 2024-04-15T00:00:00+00:00 2024-04-15T00:00:00
2024-W16-2 true 2024-04-16T00:00:00+00:00 2024-04-16T00:00:00
2024-W16-3 true 2024-04-17T00:00:00+00:00 2024-04-17T00:00:00
2024-W16-4 true 2024-04-18T00:00:00+00:00 2024-04-18T00:00:00
2024-W16-5 true 2024-04-19T00:00:00+00:00 2024-04-19T00:00:00
2024-W16-6 true 2024-04-20T00:00:00+00:00 2024-04-20T00:00:00
2024-W16-7 true 2024-04-21T00:00:00+00:00 2024-04-21T00:00:00
2024-W17-1 true 2024-04-22T00:00:00+00:00 2024-04-22T00:00:00
2024-W17-2 true 2024-04-23T00:00:00+00:00 2024-04-23T00:00:00
2024-W17-3 true 2024-04-24T00:00:00+00:00 2024-04-24T00:00:00
2024-W17-4 true 2024-04-25T00:00:00+00:00 2024-04-25T00:00:00
2024-W17-5 true 2024-04-26T00:00:00+00:00 2024-04-26T00:00:00
2024-W17-6 true 2024-04-27T00:00:00+00:00 2024-04-27T00:00:00
2024-W17-7 true 2024-04-28T00:00:00+00:00 2024-04-28T00:00:00
2024-W18-1 true 2024-04-29T00:00:00+00:00 2024-04-29T00:00:00
2024-W18-2 false 2024-04-30T00:00:00
2024-W18-3 true 2024-05-01T00:00:00+00:00 2024-05-01T00:00:00
2024-W18-4 true 2024-05-02T00:00:00+00:00 2024-05-02T00:00:00
2024-W18-5 true 2024-05-03T00:00:00+00:00 2024-05-03T00:00:00
2024-W18-6 true 2024-05-04T00:00:00+00:00 2024-05-04T00:00:00
2024-W18-7 true 2024-05-05T00:00:00+00:00 2024-05-05T00:00:00
2024-W19-1 true 2024-05-06T00:00:00+00:00 2024-05-06T00:00:00
2024-W19-2 true 2024-05-07T00:00:00+00:00 2024-05-07T00:00:00
2024-W19-3 true 2024-05-08T00:00:00+00:00 2024-05-08T00:00:00
2024-W19-4 true 2024-05-09T00:00:00+00:00 2024-05-09T00:00:00
2024-W19-5 true 2024-05-10T00:00:00+00:00 2024-05-10T00:00:00
2024-W19-6 true 2024-05-11T00:00:00+00:00 2024-05-11T00:00:00
2024-W19-7 true 2024-05-12T00:00:00+00:00 2024-05-12T00:00:00
2024-W20-1 true 2024-05-13T00:00:00+00:00 2024-05-13T00:00:00
2024-W20-2 true 2024-05-14T00:00:00+00:00 2024-05-14T00:00:00
2024-W20-3 true 2024-05-15T00:00:00+00:00 2024-05-15T00:00:00
2024-W20-4 true 2024-05-16T00:00:00+00:00 2024-05-16T00:00:00
2024-W20-5 true 2024-05-17T00:00:00+00:00 2024-05-17T00:00:00
2024-W20-6 true 2024-05-18T00:00:00+00:00 2024-05-18T00:00:00
2024-W20-7 true 2024-05-19T00:00:00+00:00 2024-05-19T00:00:00
2024-W21-1 true 2024-05-20T00:00:00+00:00 2024-05-20T00:00:00
2024-W21-2 true 2024-05-21T00:00:00+00:00 2024-05-21T00:00:00
2024-W21-3 true 2024-05-22T00:00:00+00:00 2024-05-22T00:00:00
2024-W21-4 true 2024-05-23T00:00:00+00:00 2024-05-23T00:00:00
2024-W21-5 true 2024-05-24T00:00:00+00:00 2024-05-24T00:00:00
2024-W21-6 true 2024-05-25T00:00:00+00:00 2024-05-25T00:00:00
2024-W21-7 true 2024-05-26T00:00:00+00:00 2024-05-26T00:00:00
2024-W22-1 true 2024-05-27T00:00:00+00:00 2024-05-27T00:00:00
2024-W22-2 true 2024-05-28T00:00:00+00:00 2024-05-28T00:00:00
2024-W22-3 true 2024-05-29T00:00:00+00:00 2024-05-29T00:00:00
2024-W22-4 true 2024-05-30T00:00:00+00:00 2024-05-30T00:00:00
2024-W22-5 false 2024-05-31T00:00:00
2024-W22-6 true 2024-06-01T00:00:00+00:00 2024-06-01T00:00:00
2024-W22-7 true 2024-06-02T00:00:00+00:00 2024-06-02T00:00:00
2024-W23-1 true 2024-06-03T00:00:00+00:00 2024-06-03T00:00:00
2024-W23-2 true 2024-06-04T00:00:00+00:00 2024-06-04T00:00:00
2024-W23-3 true 2024-06-05T00:00:00+00:00 2024-06-05T00:00:00
2024-W23-4 true 2024-06-06T00:00:00+00:00 2024-06-06T00:00:00
2024-W23-5 true 2024-06-07T00:00:00+00:00 2024-06-07T00:00:00
2024-W23-6 true 2024-06-08T00:00:00+00:00 2024-06-08T00:00:00
2024-W23-7 true 2024-06-09T00:00:00+00:00 2024-06-09T00:00:00
2024-W24-1 true 2024-06-10T00:00:00+00:00 2024-06-10T00:00:00
2024-W24-2 true 2024-06-11T00:00:00+00:00 2024-06-11T00:00:00
2024-W24-3 true 2024-06-12T00:00:00+00:00 2024-06-12T00:00:00
2024-W24-4 true 2024-06-13T00:00:00+00:00 2024-06-13T00:00:00
2024-W24-5 true 2024-06-14T00:00:00+00:00 2024-06-14T00:00:00
2024-W24-6 true 2024-06-15T00:00:00+00:00 2024-06-15T00:00:00
2024-W24-7 true 2024-06-16T00:00:00+00:00 2024-06-16T00:00:00
2024-W25-1 true 2024-06-17T00:00:00+00:00 2024-06-17T00:00:00
2024-W25-2 true 2024-06-18T00:00:00+00:00 2024-06-18T00:00:00
2024-W25-3 true 2024-06-19T00:00:00+00:00 2024-06-19T00:00:00
2024-W25-4 true 2024-06-20T00:00:00+00:00 2024-06-20T00:00:00
2024-W25-5 true 2024-06-21T00:00:00+00:00 2024-06-21T00:00:00
2024-W25-6 true 2024-06-22T00:00:00+00:00 2024-06-22T00:00:00
2024-W25-7 true 2024-06-23T00:00:00+00:00 2024-06-23T00:00:00
2024-W26-1 true 2024-06-24T00:00:00+00:00 2024-06-24T00:00:00
2024-W26-2 true 2024-06-25T00:00:00+00:00 2024-06-25T00:00:00
2024-W26-3 true 2024-06-26T00:00:00+00:00 2024-06-26T00:00:00
2024-W26-4 true 2024-06-27T00:00:00+00:00 2024-06-27T00:00:00
2024-W26-5 true 2024-06-28T00:00:00+00:00 2024-06-28T00:00:00
2024-W26-6 true 2024-06-29T00:00:00+00:00 2024-06-29T00:00:00
2024-W26-7 false 2024-06-30T00:00:00
2024-W27-1 true 2024-07-01T00:00:00+00:00 2024-07-01T00:00:00
2024-W27-2 true 2024-07-02T00:00:00+00:00 2024-07-02T00:00:00
2024-W27-3 true 2024-07-03T00:00:00+00:00 2024-07-03T00:00:00
2024-W27-4 true 2024-07-04T00:00:00+00:00 2024-07-04T00:00:00
2024-W27-5 true 2024-07-05T00:00:00+00:00 2024-07-05T00:00:00
2024-W27-6 true 2024-07-06T00:00:00+00:00 2024-07-06T00:00:00
2024-W27-7 true 2024-07-07T00:00:00+00:00 2024-07-07T00:00:00
2024-W28-1 true 2024-07-08T00:00:00+00:00 2024-07-08T00:00:00
2024-W28-2 true 2024-07-09T00:00:00+00:00 2024-07-09T00:00:00
2024-W28-3 true 2024-07-10T00:00:00+00:00 2024-07-10T00:00:00
2024-W28-4 true 2024-07-11T00:00:00+00:00 2024-07-11T00:00:00
2024-W28-5 true 2024-07-12T00:00:00+00:00 2024-07-12T00:00:00
2024-W28-6 true 2024-07-13T00:00:00+00:00 2024-07-13T00:00:00
2024-W28-7 true 2024-07-14T00:00:00+00:00 2024-07-14T00:00:00
2024-W29-1 true 2024-07-15T00:00:00+00:00 2024-07-15T00:00:00
2024-W29-2 true 2024-07-16T00:00:00+00:00 2024-07-16T00:00:00
2024-W29-3 true 2024-07-17T00:00:00+00:00 2024-07-17T00:00:00
2024-W29-4 true 2024-07-18T00:00:00+00:00 2024-07-18T00:00:00
2024-W29-5 true 2024-07-19T00:00:00+00:00 2024-07-19T00:00:00
2024-W29-6 true 2024-07-20T00:00:00+00:00 2024-07-20T00:00:00
2024-W29-7 true 2024-07-21T00:00:00+00:00 2024-07-21T00:00:00
2024-W30-1 true 2024-07-22T00:00:00+00:00 2024-07-22T00:00:00
2024-W30-2 true 2024-07-23T00:00:00+00:00 2024-07-23T00:00:00
2024-W30-3 true 2024-07-24T00:00:00+00:00 2024-07-24T00:00:00
2024-W30-4 true 2024-07-25T00:00:00+00:00 2024-07-25T00:00:00
2024-W30-5 true 2024-07-26T00:00:00+00:00 2024-07-26T00:00:00
2024-W30-6 true 2024-07-27T00:00:00+00:00 2024-07-27T00:00:00
2024-W30-7 true 2024-07-28T00:00:00+00:00 2024-07-28T00:00:00
2024-W31-1 true 2024-07-29T00:00:00+00:00 2024-07-29T00:00:00
2024-W31-2 true 2024-07-30T00:00:00+00:00 2024-07-30T00:00:00
2024-W31-3 false 2024-07-31T00:00:00
2024-W31-4 true 2024-08-01T00:00:00+00:00 2024-08-01T00:00:00
2024-W31-5 true 2024-08-02T00:00:00+00:00 2024-08-02T00:00:00
2024-W31-6 true 2024-08-03T00:00:00+00:00 2024-08-03T00:00:00
2024-W31-7 true 2024-08-04T00:00:00+00:00 2024-08-04T00:00:00
2024-W32-1 true 2024-08-05T00:00:00+00:00 2024-08-05T00:00:00
2024-W32-2 true 2024-08-06T00:00:00+00:00 2024-08-06T00:00:00
2024-W32-3 true 2024-08-07T00:00:00+00:00 2024-08-07T00:00:00
2024-W32-4 true 2024-08-08T00:00:00+00:00 2024-08-08T00:00:00
2024-W32-5 true 2024-08-09T00:00:00+00:00 2024-08-09T00:00:00
2024-W32-6 true 2024-08-10T00:00:00+00:00 2024-08-10T00:00:00
2024-W32-7 true 2024-08-11T00:00:00+00:00 2024-08-11T00:00:00
2024-W33-1 true 2024-08-12T00:00:00+00:00 2024-08-12T00:00:00
2024-W33-2 true 2024-08-13T00:00:00+00:00 2024-08-13T00:00:00
2024-W33-3 true 2024-08-14T00:00:00+00:00 2024-08-14T00:00:00
2024-W33-4 true 2024-08-15T00:00:00+00:00 2024-08-15T00:00:00
2024-W33-5 true 2024-08-16T00:00:00+00:00 2024-08-16T00:00:00
2024-W33-6 true 2024-08-17T00:00:00+00:00 2024-08-17T00:00:00
2024-W33-7 true 2024-08-18T00:00:00+00:00 2024-08-18T00:00:00
2024-W34-1 true 2024-08-19T00:00:00+00:00 2024-08-19T00:00:00
2024-W34-2 true 2024-08-20T00:00:00+00:00 2024-08-20T00:00:00
2024-W34-3 true 2024-08-21T00:00:00+00:00 2024-08-21T00:00:00
2024-W34-4 true 2024-08-22T00:00:00+00:00 2024-08-22T00:00:00
2024-W34-5 true 2024-08-23T00:00:00+00:00 2024-08-23T00:00:00
2024-W34-6 true 2024-08-24T00:00:00+00:00 2024-08-24T00:00:00
2024-W34-7 true 2024-08-25T00:00:00+00:00 2024-08-25T00:00:00
2024-W35-1 true 2024-08-26T00:00:00+00:00 2024-08-26T00:00:00
2024-W35-2 true 2024-08-27T00:00:00+00:00 2024-08-27T00:00:00
2024-W35-3 true 2024-08-28T00:00:00+00:00 2024-08-28T00:00:00
2024-W35-4 true 2024-08-29T00:00:00+00:00 2024-08-29T00:00:00
2024-W35-5 true 2024-08-30T00:00:00+00:00 2024-08-30T00:00:00
2024-W35-6 false 2024-08-31T00:00:00
2024-W35-7 true 2024-09-01T00:00:00+00:00 2024-09-01T00:00:00
2024-W36-1 true 2024-09-02T00:00:00+00:00 2024-09-02T00:00:00
2024-W36-2 true 2024-09-03T00:00:00+00:00 2024-09-03T00:00:00
2024-W36-3 true 2024-09-04T00:00:00+00:00 2024-09-04T00:00:00
2024-W36-4 true 2024-09-05T00:00:00+00:00 2024-09-05T00:00:00
2024-W36-5 true 2024-09-06T00:00:00+00:00 2024-09-06T00:00:00
2024-W36-6 true 2024-09-07T00:00:00+00:00 2024-09-07T00:00:00
2024-W36-7 true 2024-09-08T00:00:00+00:00 2024-09-08T00:00:00
2024-W37-1 true 2024-09-09T00:00:00+00:00 2024-09-09T00:00:00
2024-W37-2 true 2024-09-10T00:00:00+00:00 2024-09-10T00:00:00
2024-W37-3 true 2024-09-11T00:00:00+00:00 2024-09-11T00:00:00
2024-W37-4 true 2024-09-12T00:00:00+00:00 2024-09-12T00:00:00
2024-W37-5 true 2024-09-13T00:00:00+00:00 2024-09-13T00:00:00
2024-W37-6 true 2024-09-14T00:00:00+00:00 2024-09-14T00:00:00
2024-W37-7 true 2024-09-15T00:00:00+00:00 2024-09-15T00:00:00
2024-W38-1 true 2024-09-16T00:00:00+00:00 2024-09-16T00:00:00
2024-W38-2 true 2024-09-17T00:00:00+00:00 2024-09-17T00:00:00
2024-W38-3 true 2024-09-18T00:00:00+00:00 2024-09-18T00:00:00
2024-W38-4 true 2024-09-19T00:00:00+00:00 2024-09-19T00:00:00
2024-W38-5 true 2024-09-20T00:00:00+00:00 2024-09-20T00:00:00
2024-W38-6 true 2024-09-21T00:00:00+00:00 2024-09-21T00:00:00
2024-W38-7 true 2024-09-22T00:00:00+00:00 2024-09-22T00:00:00
2024-W39-1 true 2024-09-23T00:00:00+00:00 2024-09-23T00:00:00
2024-W39-2 true 2024-09-24T00:00:00+00:00 2024-09-24T00:00:00
2024-W39-3 true 2024-09-25T00:00:00+00:00 2024-09-25T00:00:00
2024-W39-4 true 2024-09-26T00:00:00+00:00 2024-09-26T00:00:00
2024-W39-5 true 2024-09-27T00:00:00+00:00 2024-09-27T00:00:00
2024-W39-6 true 2024-09-28T00:00:00+00:00 2024-09-28T00:00:00
2024-W39-7 true 2024-09-29T00:00:00+00:00 2024-09-29T00:00:00
2024-W40-1 false 2024-09-30T00:00:00
2024-W40-2 true 2024-10-01T00:00:00+00:00 2024-10-01T00:00:00
2024-W40-3 true 2024-10-02T00:00:00+00:00 2024-10-02T00:00:00
2024-W40-4 true 2024-10-03T00:00:00+00:00 2024-10-03T00:00:00
2024-W40-5 true 2024-10-04T00:00:00+00:00 2024-10-04T00:00:00
2024-W40-6 true 2024-10-05T00:00:00+00:00 2024-10-05T00:00:00
2024-W40-7 true 2024-10-06T00:00:00+00:00 2024-10-06T00:00:00
2024-W41-1 true 2024-10-07T00:00:00+00:00 2024-10-07T00:00:00
2024-W41-2 true 2024-10-08T00:00:00+00:00 2024-10-08T00:00:00
2024-W41-3 true 2024-10-09T00:00:00+00:00 2024-10-09T00:00:00
2024-W41-4 true 2024-10-10T00:00:00+00:00 2024-10-10T00:00:00
2024-W41-5 true 2024-10-11T00:00:00+00:00 2024-10-11T00:00:00
2024-W41-6 true 2024-10-12T00:00:00+00:00 2024-10-12T00:00:00
2024-W41-7 true 2024-10-13T00:00:00+00:00 2024-10-13T00:00:00
2024-W42-1 true 2024-10-14T00:00:00+00:00 2024-10-14T00:00:00
2024-W42-2 true 2024-10-15T00:00:00+00:00 2024-10-15T00:00:00
2024-W42-3 true 2024-10-16T00:00:00+00:00 2024-10-16T00:00:00
2024-W42-4 true 2024-10-17T00:00:00+00:00 2024-10-17T00:00:00
2024-W42-5 true 2024-10-18T00:00:00+00:00 2024-10-18T00:00:00
2024-W42-6 true 2024-10-19T00:00:00+00:00 2024-10-19T00:00:00
2024-W42-7 true 2024-10-20T00:00:00+00:00 2024-10-20T00:00:00
2024-W43-1 true 2024-10-21T00:00:00+00:00 2024-10-21T00:00:00
2024-W43-2 true 2024-10-22T00:00:00+00:00 2024-10-22T00:00:00
2024-W43-3 true 2024-10-23T00:00:00+00:00 2024-10-23T00:00:00
2024-W43-4 true 2024-10-24T00:00:00+00:00 2024-10-24T00:00:00
2024-W43-5 true 2024-10-25T00:00:00+00:00 2024-10-25T00:00:00
2024-W43-6 true 2024-10-26T00:00:00+00:00 2024-10-26T00:00:00
2024-W43-7 true 2024-10-27T00:00:00+00:00 2024-10-27T00:00:00
2024-W44-1 true 2024-10-28T00:00:00+00:00 2024-10-28T00:00:00
2024-W44-2 true 2024-10-29T00:00:00+00:00 2024-10-29T00:00:00
2024-W44-3 true 2024-10-30T00:00:00+00:00 2024-10-30T00:00:00
2024-W44-4 false 2024-10-31T00:00:00
2024-W44-5 true 2024-11-01T00:00:00+00:00 2024-11-01T00:00:00
2024-W44-6 true 2024-11-02T00:00:00+00:00 2024-11-02T00:00:00
2024-W44-7 true 2024-11-03T00:00:00+00:00 2024-11-03T00:00:00
2024-W45-1 true 2024-11-04T00:00:00+00:00 2024-11-04T00:00:00
2024-W45-2 true 2024-11-05T00:00:00+00:00 2024-11-05T00:00:00
2024-W45-3 true 2024-11-06T00:00:00+00:00 2024-11-06T00:00:00
2024-W45-4 true 2024-11-07T00:00:00+00:00 2024-11-07T00:00:00
2024-W45-5 true 2024-11-08T00:00:00+00:00 2024-11-08T00:00:00
2024-W45-6 true 2024-11-09T00:00:00+00:00 2024-11-09T00:00:00
2024-W45-7 true 2024-11-10T00:00:00+00:00 2024-11-10T00:00:00
2024-W46-1 true 2024-11-11T00:00:00+00:00 2024-11-11T00:00:00
2024-W46-2 true 2024-11-12T00:00:00+00:00 2024-11-12T00:00:00
2024-W46-3 true 2024-11-13T00:00:00+00:00 2024-11-13T00:00:00
2024-W46-4 true 2024-11-14T00:00:00+00:00 2024-11-14T00:00:00
2024-W46-5 true 2024-11-15T00:00:00+00:00 2024-11-15T00:00:00
2024-W46-6 true 2024-11-16T00:00:00+00:00 2024-11-16T00:00:00
2024-W46-7 true 2024-11-17T00:00:00+00:00 2024-11-17T00:00:00
2024-W47-1 true 2024-11-18T00:00:00+00:00 2024-11-18T00:00:00
2024-W47-2 true 2024-11-19T00:00:00+00:00 2024-11-19T00:00:00
2024-W47-3 true 2024-11-20T00:00:00+00:00 2024-11-20T00:00:00
2024-W47-4 true 2024-11-21T00:00:00+00:00 2024-11-21T00:00:00
2024-W47-5 true 2024-11-22T00:00:00+00:00 2024-11-22T00:00:00
2024-W47-6 true 2024-11-23T00:00:00+00:00 2024-11-23T00:00:00
2024-W47-7 true 2024-11-24T00:00:00+00:00 2024-11-24T00:00:00
2024-W48-1 true 2024-11-25T00:00:00+00:00 2024-11-25T00:00:00
2024-W48-2 true 2024-11-26T00:00:00+00:00 2024-11-26T00:00:00
2024-W48-3 true 2024-11-27T00:00:00+00:00 2024-11-27T00:00:00
2024-W48-4 true 2024-11-28T00:00:00+00:00 2024-11-28T00:00:00
2024-W48-5 true 2024-11-29T00:00:00+00:00 2024-11-29T00:00:00
2024-W48-6 false 2024-11-30T00:00:00
2024-W48-7 true 2024-12-01T00:00:00+00:00 2024-12-01T00:00:00
2024-W49-1 true 2024-12-02T00:00:00+00:00 2024-12-02T00:00:00
2024-W49-2 true 2024-12-03T00:00:00+00:00 2024-12-03T00:00:00
2024-W49-3 true 2024-12-04T00:00:00+00:00 2024-12-04T00:00:00
2024-W49-4 true 2024-12-05T00:00:00+00:00 2024-12-05T00:00:00
2024-W49-5 true 2024-12-06T00:00:00+00:00 2024-12-06T00:00:00
2024-W49-6 true 2024-12-07T00:00:00+00:00 2024-12-07T00:00:00
2024-W49-7 true 2024-12-08T00:00:00+00:00 2024-12-08T00:00:00
2024-W50-1 true 2024-12-09T00:00:00+00:00 2024-12-09T00:00:00
2024-W50-2 true 2024-12-10T00:00:00+00:00 2024-12-10T00:00:00
2024-W50-3 true 2024-12-11T00:00:00+00:00 2024-12-11T00:00:00
2024-W50-4 true 2024-12-12T00:00:00+00:00 2024-12-12T00:00:00
2024-W50-5 true 2024-12-13T00:00:00+00:00 2024-12-13T00:00:00
2024-W50-6 true 2024-12-14T00:00:00+00:00 2024-12-14T00:00:00
2024-W50-7 true 2024-12-15T00:00:00+00:00 2024-12-15T00:00:00
2024-W51-1 true 2024-12-16T00:00:00+00:00 2024-12-16T00:00:00
2024-W51-2 true 2024-12-17T00:00:00+00:00 2024-12-17T00:00:00
2024-W51-3 true 2024-12-18T00:00:00+00:00 2024-12-18T00:00:00
2024-W51-4 true 2024-12-19T00:00:00+00:00 2024-12-19T00:00:00
2024-W51-5 true 2024-12-20T00:00:00+00:00 2024-12-20T00:00:00
2024-W51-6 true 2024-12-21T00:00:00+00:00 2024-12-21T00:00:00
2024-W51-7 true 2024-12-22T00:00:00+00:00 2024-12-22T00:00:00
2024-W52-1 true 2024-12-23T00:00:00+00:00 2024-12-23T00:00:00
2024-W52-2 true 2024-12-24T00:00:00+00:00 2024-12-24T00:00:00
2024-W52-3 true 2024-12-25T00:00:00+00:00 2024-12-25T00:00:00
2024-W52-4 true 2024-12-26T00:00:00+00:00 2024-12-26T00:00:00
2024-W52-5 true 2024-12-27T00:00:00+00:00 2024-12-27T00:00:00
2024-W52-6 true 2024-12-28T00:00:00+00:00 2024-12-28T00:00:00
2024-W52-7 true 2024-12-29T00:00:00+00:00 2024-12-29T00:00:00

Activity

  1. changed the title [-]`pendulum.parse()` consistently fails on the last day of each month in 3.0.0[/-] [+]`pendulum.parse()` consistently fails on the last day of each month with iso week dates in 3.0.0[/+] on Jul 15, 2024
  2. dav1dn commented on Jul 15, 2024

    @dav1dn
    Author

    Similar issue here: #797

  3. rm-madetech commented on Jul 23, 2025

    @rm-madetech

    It would be great to have a week of year format specifier token so we could use from_format instead of parse. I came across this bug while using the data load tool GA4 connector which will only encounter one type of format for that case (so the parsing of different formats isn't needed).

  4. simonpanay commented on Jun 15, 2026

    @simonpanay

    This issue has been fixed in pendulum 3.2.0 (#918)

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions