This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年02月03日 16:02 by iaslan, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (4) | |||
|---|---|---|---|
| msg259488 - (view) | Author: Ioannis Aslanidis (iaslan) | Date: 2016年02月03日 16:02 | |
There seems to be a bug in the time library when performing the following conversion:
"""
In [8]: mytime=time.strptime(str([2015, 53, 0]), '[%Y, %U, %w]')
In [9]: mytime
Out[9]: time.struct_time(tm_year=2016, tm_mon=1, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=368, tm_isdst=-1)
In [10]: time.strftime('%Y %U', mytime)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-10-c13538c08ea5> in <module>()
----> 1 time.strftime('%Y %U', mytime)
ValueError: day of year out of range
"""
As you can observe, tm_yday got a value of 368 instead of 3. It seems that the C function is not properly subtracting 365 or 366 days when converting from week 53 of a particular year which, according to ISO 8601 [1] and per python documentation [2]. Documentation explicitly says that: "The first week of the year is the week with the year's first Thursday in it".
[1] https://en.wikipedia.org/wiki/ISO_8601#Week_dates
[2] https://docs.python.org/2/library/time.html
|
|||
| msg259957 - (view) | Author: Tamás Bence Gedai (beng94) * | Date: 2016年02月09日 22:19 | |
This is connected to http://bugs.python.org/issue23718 I submitted a patch that hopefully solves this problem. |
|||
| msg260165 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2016年02月12日 05:19 | |
Thanks for the report. Closing this issue as a duplicate of Issue23719. |
|||
| msg260166 - (view) | Author: Ned Deily (ned.deily) * (Python committer) | Date: 2016年02月12日 05:21 | |
Make that Issue23718 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:27 | admin | set | github: 70467 |
| 2016年02月12日 05:21:10 | ned.deily | set | superseder: PEP 475: port test_eintr to Windows -> strptime() can produce invalid date with negative year day messages: + msg260166 |
| 2016年02月12日 05:19:15 | ned.deily | set | status: open -> closed superseder: PEP 475: port test_eintr to Windows nosy: + ned.deily messages: + msg260165 resolution: duplicate stage: resolved |
| 2016年02月09日 22:19:16 | beng94 | set | nosy:
+ beng94 messages: + msg259957 |
| 2016年02月03日 16:13:43 | abarry | set | nosy:
+ abarry title: Possible bug in time library -> time.strptime does not properly convert out-of-bounds values versions: - Python 3.2, Python 3.3, Python 3.4 |
| 2016年02月03日 16:02:51 | iaslan | create | |