◐ Shell
clean mode source ↗

gh-70647: Better promote how to safely parse yearless dates in datetime. by gpshead · Pull Request #116179 · python/cpython

…datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

@gpshead added the docs

Documentation in the Doc dir

label

Mar 1, 2024

@gpshead gpshead marked this pull request as ready for review

March 1, 2024 08:05

@gpshead

pganssle

@gpshead

@gpshead

gpshead

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request

Dec 21, 2025
…datetime. (pythonGH-116179)

* pythongh-70647: Better promote how to safely parse yearless dates in datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

* doctest code within note is bad, dedent.

* Update to match the error message.

* remove no longer referenced footnote

* ignore the warning in the doctest

* use Petr's suggestion for the docs to hide the warning processing

* cover date.strptime (3.14) as well
(cherry picked from commit b8d3fdd)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>

gpshead added a commit that referenced this pull request

Dec 21, 2025
… datetime. (GH-116179) (#143037)

gh-70647: Better promote how to safely parse yearless dates in datetime. (GH-116179)

* gh-70647: Better promote how to safely parse yearless dates in datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

* doctest code within note is bad, dedent.

* Update to match the error message.

* remove no longer referenced footnote

* ignore the warning in the doctest

* use Petr's suggestion for the docs to hide the warning processing

* cover date.strptime (3.14) as well
(cherry picked from commit b8d3fdd)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>

gpshead added a commit to gpshead/cpython that referenced this pull request

Dec 21, 2025
…datetime. (pythonGH-116179)

* pythongh-70647: Better promote how to safely parse yearless dates in datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

* doctest code within note is bad, dedent.

* Update to match the error message.

* remove no longer referenced footnote

* ignore the warning in the doctest

* use Petr's suggestion for the docs to hide the warning processing

* cover date.strptime (3.14) as well

gpshead added a commit that referenced this pull request

Dec 21, 2025
… datetime. (GH-116179) (#143038)

* gh-70647: Better promote how to safely parse yearless dates in datetime. (GH-116179)

* gh-70647: Better promote how to safely parse yearless dates in datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

* doctest code within note is bad, dedent.

* Update to match the error message.

* remove no longer referenced footnote

* ignore the warning in the doctest

* use Petr's suggestion for the docs to hide the warning processing

* cover date.strptime (3.14) as well

* remove date.strptime mentions from 3.14

cocolato pushed a commit to cocolato/cpython that referenced this pull request

Dec 22, 2025
…datetime. (pythonGH-116179)

* pythongh-70647: Better promote how to safely parse yearless dates in datetime.

Every four years people encounter this because it just isn't obvious.
This moves the footnote up to a note with a code example.

We'd love to change the default year value for datetime but doing
that could have other consequences for existing code.  This documented
workaround *always* works.

* doctest code within note is bad, dedent.

* Update to match the error message.

* remove no longer referenced footnote

* ignore the warning in the doctest

* use Petr's suggestion for the docs to hide the warning processing

* cover date.strptime (3.14) as well

lucc added a commit to lucc/khard that referenced this pull request

Feb 18, 2026
Python uses 1900 as the default year if a partial date is parsed with
datetime.datetime.strptime.  This fails for February 29th because 1900
is not a leap year.

This is discussed in #335 and upstream in
python/cpython#116179.