classification
Title: [doc] Incorrect documentation for strftime()/strptime() format code %f
Type: behavior Stage: resolved
Components: Documentation, Library (Lib) Versions: Python 3.11, Python 3.10, Python 3.9
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, fdrake, iritkatriel, josh.r, jujuwoman, miss-islington, p-ganssle, vishalpandeyvip
Priority: normal Keywords: easy, newcomer friendly, patch

Created on 2018-04-29 01:06 by jujuwoman, last changed 2021-11-30 11:51 by iritkatriel. This issue is now closed.

Files
File name Uploaded Description Edit
Bug description.py jujuwoman, 2018-04-29 01:06 MWE of the bug
Pull Requests
URL Status Linked Edit
PR 29801 merged vishalpandeyvip, 2021-11-26 18:36
PR 29862 merged miss-islington, 2021-11-30 11:01
PR 29863 merged miss-islington, 2021-11-30 11:01
Messages (8)
msg315873 - (view) Author: Judy Wang (jujuwoman) * Date: 2018-04-29 01:06
According to https://docs.python.org/3/library/datetime.html, %f is zero-padded on the left. But actual Python 3 behavior is puts the zero padding on the right.
msg316110 - (view) Author: Josh Rosenberg (josh.r) * (Python triager) Date: 2018-05-03 04:41
Note: strftime follows the existing documentation:

>>> datetime.datetime(1970, 1, 1, microsecond=1).strftime('%f')
'000001'

The strptime behavior bug seems like a duplicate of #32267, which claims to be fixed in master as of early January; may not have made it into a release yet though. I can't figure out how to view the patch on that issue, it doesn't seem to be linked to GitHub like normal.
msg321106 - (view) Author: Paul Ganssle (p-ganssle) * (Python committer) Date: 2018-07-05 15:29
I don't believe this is a duplicate if #32267, which is actually about the %z directive.

I think the implementation here is correct and the documentation is semi-correct, it depends on how you look at it, consider:

>>> datetime(2018, 1, 1, 0, 0, 0, 1).strftime('%f')
'000001'

>>> datetime(2018, 1, 1, 0, 0, 0, 100000).strftime('%f')
'100000'

In the first case "1" got expanded to "000001" and "100000" was printed as-is. However, when you interpret it as being *after* the decimal point, you would consider the first one to not be zero-padded at all and the second one to be zero-padded on the right.

I think the documentation can just be changed to "zero-padded to 6 digits" without specifying left or right.
msg407353 - (view) Author: Vishal Pandey (vishalpandeyvip) * Date: 2021-11-30 05:20
I have made a PR into the repository, can anyone please review and merge it.
msg407357 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-11-30 11:01
New changeset f97ec09baf8431494fd2ef5133090c7b0afd0551 by Vishal Pandey in branch 'main':
bpo-33381: [doc] strftime's %f option may pad zeros on the left or the right (GH-29801)
https://github.com/python/cpython/commit/f97ec09baf8431494fd2ef5133090c7b0afd0551
msg407362 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-11-30 11:50
New changeset 39751420b363530ef46506f10691d7b91ffe9b44 by Miss Islington (bot) in branch '3.10':
bpo-33381: [doc] strftime's %f option may pad zeros on the left or the right (GH-29801) (GH-29862)
https://github.com/python/cpython/commit/39751420b363530ef46506f10691d7b91ffe9b44
msg407363 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-11-30 11:50
New changeset 031e2bb3326be542b224bbe35e7829846ea422cd by Miss Islington (bot) in branch '3.9':
bpo-33381: [doc] strftime's %f option may pad zeros on the left or the right (GH-29801) (GH-29863)
https://github.com/python/cpython/commit/031e2bb3326be542b224bbe35e7829846ea422cd
msg407364 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-11-30 11:51
Thank you Judy and Vishal!
History
Date User Action Args
2021-11-30 11:51:15iritkatrielsetstatus: open -> closed
resolution: fixed
messages: + msg407364

stage: patch review -> resolved
2021-11-30 11:50:32iritkatrielsetmessages: + msg407363
2021-11-30 11:50:03iritkatrielsetmessages: + msg407362
2021-11-30 11:01:59miss-islingtonsetpull_requests: + pull_request28090
2021-11-30 11:01:55miss-islingtonsetnosy: + miss-islington
pull_requests: + pull_request28089
2021-11-30 11:01:54iritkatrielsetnosy: + iritkatriel
messages: + msg407357
2021-11-30 05:20:44vishalpandeyvipsetmessages: + msg407353
2021-11-26 18:36:41vishalpandeyvipsetkeywords: + patch
nosy: + vishalpandeyvip

pull_requests: + pull_request28035
stage: patch review
2021-11-23 18:01:56iritkatrielsettitle: Incorrect documentation for strftime()/strptime() format code %f -> [doc] Incorrect documentation for strftime()/strptime() format code %f
nosy: + docs@python

assignee: docs@python
versions: + Python 3.9, Python 3.10, Python 3.11, - Python 3.6
components: + Documentation, Library (Lib)
keywords: + easy, newcomer friendly
2018-10-12 18:06:22fdrakesetnosy: + fdrake
2018-07-05 15:29:42p-gansslesetmessages: + msg321106
2018-07-05 15:15:38p-gansslesetnosy: + p-ganssle
2018-05-03 04:41:09josh.rsetnosy: + josh.r
messages: + msg316110
2018-04-29 01:06:18jujuwomancreate