Commit graph

104 commits

Author SHA1 Message Date
Jason Yalim, PhD
f884dc6f70
gh-140715: Add %t and %n format codes support to strptime() (GH-144896)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2026-03-13 14:00:39 +01:00
Anton Ryzhov
175ab31377
Update comments in _strptime module (GH-144979)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2026-02-20 08:56:56 +01:00
Jason Yalim, PhD
185a6e942a
gh-140715: Add %D format code support to strptime() (GH-144819)
* %D support for strptime, including test and Doc update
* additional %D test
* change documentation example date for %D so it is more legible to non-US readers
* change testing date for %D so it is more legible to non-US readers
* mv News blurb to Library, consistent with previous %F change
* change invalid format code from %D to C-standard unused %!
* Fix erroneous and misleading example Doc to %y from %Y, use correct C99+ definition for C99 %D; update additional tests

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2026-02-16 14:20:37 -08:00
Jason Yalim, PhD
d99f3fc474
gh-140715: Add %F format code support to strptime() (GH-140647)
Also: add tests for the `%T` format code

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2026-02-09 13:24:15 +01:00
Gordon P. Hemsley
e3d9bd6be3
gh-81148: Eliminate unnecessary check in _strptime when determining AM/PM (#13428)
* bpo-36967: Eliminate unnecessary check in _strptime when determining AM/PM

* Pauls suggestion to refactor test

* Fix test

---------

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>
2025-09-19 10:23:12 +00:00
Semyon Moroz
495f589363
gh-121237: Add %:z directive to datetime.strptime (#136961) 2025-09-19 10:25:31 +01:00
Serhiy Storchaka
731f5b8ab3
gh-136028: Fix parsing month names containing "İ" (U+0130) in strptime() (GH-136029)
This affects locales az_AZ, ber_DZ, ber_MA and crh_UA.
2025-06-27 16:47:03 +03:00
Serhiy Storchaka
07183ebce3
gh-53203: Fix strptime() for %c, %x and %X formats on some locales (#135971)
* Add detection of decimal non-ASCII alt digits.
* Add support of non-decimal alt digits on locale lzh_TW.
* Accept only numbers in correct range if alt digits are known.
* Fix bug in detecting the position of the week day name on locales byn_ER and wal_ET.
* Fix support of single-digit hour on locales ar_SA and bg_BG.
* Add support for %T, %R, %r, %C, %OC.
* Prepare code to use nl_langinfo().
2025-06-27 10:50:59 +03:00
Stan Ulbrych
99b580857f
gh-122781: Allow empty offset for %z in strptime (#132922)
* commit

* Move tests
2025-05-20 16:39:58 +00:00
Serhiy Storchaka
3feac7a093
gh-131434: Improve error reporting for incorrect format in strptime() (GH-131568)
In particularly, fix regression in detecting stray % at the end of the
format string.
2025-04-09 13:26:50 +03:00
Beomsoo Kim
51cfa569e3
gh-127552: Remove comment questioning 4-digit restriction for ‘Y’ in datetime.strptime patterns (#127590)
The code has required 4 digits for the year since its inclusion in the stdlib in 2002 (over 22 years ago as of this commit).
2024-12-04 10:30:51 -08:00
Serhiy Storchaka
5f4e5b598c
gh-53203: Fix strptime() for %c, %x and %X formats on many locales (GH-125406)
Fixed most locales that use non-ASCII digits, like Persian, Burmese,
Odia and Shan.
2024-10-14 16:29:20 +03:00
Serhiy Storchaka
c05f9dde8a
gh-53203: Fix strptime() for %c and %x formats on many locales (GH-124946)
In some locales (like French or Hebrew) the full or abbreviated names of
the default month and weekday used in __calc_date_time can be part of
other name or constant part of the %c format. The month name can also
match %m with constant suffix (like in Japanese). So the code failed to
correctly distinguish formats %a, %A, %b, %B and %m.

Cycle all month and all days of the week to find the variable part
and distinguish %a from %A and %b from %B or %m.

Fixed locales for the following languges:
Arabic, Bislama, Breton, Bodo, Kashubian, Chuvash, Estonian, French, Irish,
Ge'ez, Gurajati, Manx Gaelic, Hebrew, Hindi, Chhattisgarhi, Haitian Kreyol,
Japanese, Kannada, Korean, Marathi, Malay, Norwegian, Nynorsk, Punjabi,
Rajasthani, Tok Pisin, Yoruba, Yue Chinese, Yau/Nungon and Chinese.

Co-authored-by: Eli Bendersky <eliben@gmail.com>
2024-10-12 17:46:21 +00:00
Nice Zombies
9968caa0cc
gh-41431: Add datetime.time.strptime() and datetime.date.strptime() (#120752)
* Python implementation

* C implementation

* Test `date.strptime`

* Test `time.strptime`

* 📜🤖 Added by blurb_it.

* Update whatsnew

* Update documentation

* Add leap year note

* Update 2024-06-19-19-53-42.gh-issue-41431.gnkUc5.rst

* Apply suggestions from code review

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>

* Remove parentheses

* Use helper function

* Remove bad return

* Link to github issue

* Fix directive

* Apply suggestions from code review

Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>

* Fix test cases

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>
2024-09-25 14:43:58 -07:00
abstractee
1f4a49ea53
Fix typos in warnings, docstrings, comments and text files (#123597) 2024-09-03 02:20:40 +02:00
Gregory P. Smith
33ee5cb3e9
GH-70647: Deprecate strptime day of month parsing without a year present to avoid leap-year bugs (GH-117107) 2024-04-03 14:19:49 +02:00
Gordon P. Hemsley
4b2c3e8e43
bpo-36959: Fix error messages for invalid ISO format string in _strptime() (GH-13408)
Previously some error messages complained about incompatible
combinations of directives that are not contained in the format string.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-12-26 19:26:17 +00:00
Paul Ganssle
a5308e188b
GH-90750: Use datetime.fromisocalendar in _strptime (#103802)
Use datetime.fromisocalendar in _strptime

This unifies the ISO → Gregorian conversion logic and improves handling
of invalid ISO weeks.
2023-04-27 10:27:27 -06:00
Noor Michael
04f6fbb696
bpo-43295: Fix error handling of datetime.strptime format string '%z' (GH-24627)
Previously, `datetime.strptime` would match `'z'` with the format string `'%z'` (for UTC offsets), throwing an `IndexError` by erroneously trying to parse `'z'` as a timestamp. As a special case, `'%z'` matches the string `'Z'` which is equivalent to the offset `'+00:00'`, however this behavior is not defined for lowercase `'z'`.

This change ensures a `ValueError` is thrown when encountering the original example, as follows:

```
>>> from datetime import datetime
>>> datetime.strptime('z', '%z')
ValueError: time data 'z' does not match format '%z'
```

Automerge-Triggered-By: GH:pganssle
2021-03-03 08:58:57 -08:00
Ram Rachum
14dbe4b3f0 Fix outdated comment in _strptime.py (GH-17929)
Can I please get the tags for skipping bpo and skipping a news item?
2020-01-12 12:53:00 -08:00
Mario Corchero
89a25ce4fd bpo-33541: Remove unused __pad function (GH-4377)
Function was added with the initial implementation 00efe7e798.
2018-05-20 13:42:30 -04:00
Ville Skyttä
61f82e0e33 Spelling fixes to docs, docstrings, and comments (GH-6374) 2018-04-20 16:08:45 -04:00
Mario Corchero
f80c0ca133 Fix when parsing tz offsets microseconds shorter than 6 (#4781)
As the remainder was directly parsed as an int, strings like
.600 were parsed as 600 microseconds rather than milliseconds.
2018-01-09 16:37:26 -05:00
Mario Corchero
32318930da Closes bpo-31800: Support for colon when parsing time offsets (#4015)
Add support to strptime to parse time offsets with a colon between the hour and the minutes.
2017-10-25 20:35:41 -04:00
Antoine Pitrou
a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Serhiy Storchaka
6e4150f36b Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by
Tamás Bence Gedai.
2016-03-12 10:53:09 +02:00
Serhiy Storchaka
8a7240eeed Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by
Tamás Bence Gedai.
2016-03-12 10:51:16 +02:00
Serhiy Storchaka
3ab6c981e7 Issue #6478: _strptime's regexp cache now is reset after changing timezone
with time.tzset().
2015-12-03 22:27:31 +02:00
Serhiy Storchaka
b1f64e7d29 Issue #6478: _strptime's regexp cache now is reset after changing timezone
with time.tzset().
2015-12-03 22:26:36 +02:00
Serhiy Storchaka
c7217d7c22 Issue #6478: _strptime's regexp cache now is reset after changing timezone
with time.tzset().
2015-12-03 22:21:07 +02:00
Alexander Belopolsky
68713e41a5 Closes issue #12006: Add ISO 8601 year, week, and day directives to strptime.
This commit adds %G, %V, and %u directives to strptime.  Thanks Ashley Anderson
for the implementation.
2015-10-06 13:29:56 -04:00
Serhiy Storchaka
15fa1c4ade Fixed using deprecated escaping in regular expression in _strptime.py (issue23622). 2015-03-25 01:21:50 +02:00
Serhiy Storchaka
fc7344a792 Issue #23136: _strptime now uniformly handles all days in week 0, including
Jan 30 of previous year.  Based on patch by Jim Carroll.
2015-03-19 19:14:15 +02:00
Serhiy Storchaka
423feea01e Issue #23136: _strptime now uniformly handles all days in week 0, including
Jan 30 of previous year.  Based on patch by Jim Carroll.
2015-03-19 19:13:37 +02:00
Raymond Hettinger
df1b699447 Issue #22823: Use set literals instead of creating a set from a list 2014-11-09 15:56:33 -08:00
Victor Stinner
7fa767e517 Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
Serhiy Storchaka
b5d386314f Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime().  Initial patch by Claudiu Popa.
2013-11-24 18:17:11 +02:00
Serhiy Storchaka
cdac302af3 Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime().  Initial patch by Claudiu Popa.
2013-11-24 18:15:37 +02:00
Ezio Melotti
9a3777e525 #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
Ezio Melotti
30b9d5d3af #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
Brett Cannon
cd171c8e92 Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
Brett Cannon
0a140668fa Issue #18200: Update the stdlib (except tests) to use
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Ezio Melotti
d57f047665 #17572: merge with 3.3. 2013-04-04 02:16:27 +03:00
Ezio Melotti
0f38908684 #17572: Avoid chained exceptions while passing bad directives to time.strptime(). Initial patch by Claudiu Popa. 2013-04-04 02:09:20 +03:00
Antoine Pitrou
2306e6049b Issue #17165: fix a bare import in _strptime.py.
Patch by Berker Peksag.
2013-02-10 19:29:17 +01:00
Alexander Belopolsky
c142bba2a7 Issue #1667546: On platforms supporting tm_zone and tm_gmtoff fields
in struct tm, time.struct_time objects returned by time.gmtime(),
time.localtime() and time.strptime() functions now have tm_zone and
tm_gmtoff attributes.  Original patch by Paul Boddie.
2012-06-13 22:15:26 -04:00
Antoine Pitrou
072e4a3fc7 Followup to issue #14157: respect the relative ordering of values produced by time.strptime().
Patch by Hynek.
2012-05-14 19:44:59 +02:00
Antoine Pitrou
1682e5d740 Issue #14157: Fix time.strptime failing without a year on February 29th.
Patch by Hynek Schlawack.
2012-05-10 20:17:46 +02:00
Alexander Belopolsky
4988d7a375 PEP 8 conformance: class_ -> cls 2010-07-14 13:46:57 +00:00
Alexander Belopolsky
f568218e7e Issue #6641: Original commit for this issue, r82053, introduced a
regression making datetime subclass' strptime return datetime rather
than subclass instances.  Fixed this bug and a few typos.
2010-06-18 18:44:37 +00:00