New submission from Jonatan Skogsfors <[email protected]>:
Consider the following code :
Python 3.10.2 (main, Jan 31 2022, 12:03:48) [GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> datetime.strptime("2021-53-1", "%Y-%W-%w").strftime("%c")
'Mon Jan 3 00:00:00 2022'
And also:
>>> datetime.strptime("2021-53-1", "%G-%V-%u").strftime("%c")
'Mon Jan 3 00:00:00 2022'
2021 is a "short year" with 52 weeks (e.g. since December 31 is on a Friday).
The 53rd week of 2021 is interpreted by Python as week 1 of 2022. This can be
convenient but as I understand it, it is not a part of ISO 8601 and it is not
documented as a deviation in the documentation for datetime.
As a comparison, the special behavior of week 0 (also not part of ISO 8601) is
documented. In the documentation for format directive "%W" it is stated that
"All days in a new year preceding the first Monday are considered to be in week
0."
If the behavior for week 53 is intended (as opposed to raising an error) I
think it should be documented.
----------
components: Library (Lib)
messages: 412200
nosy: Jonatan Skogsfors
priority: normal
severity: normal
status: open
title: Undocumented behavior in strptime for ISO week dates
type: behavior
versions: Python 3.10
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue46592>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com