Opened 10 months ago
Closed 10 months ago
#35097 closed Cleanup/optimization (fixed)
Test utils.dateparse.parse_datetime() with a bare date
Reported by: | David Wobrock | Owned by: | nobody |
---|---|---|---|
Component: | Utilities | Version: | 4.0 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hey,
A bit late to the party, but in 4.0, we introduced a patch that changed the behaviour of django.utils.dateparse.parse_datetime
.
In very short, on Django 3.2
>>> from django.utils.dateparse import parse_datetime >>> parse_datetime('2023-01-01') # Returns None
And on Django 4.0,
>>> from django.utils.dateparse import parse_datetime >>> parse_datetime('2023-01-01') datetime.datetime(2023, 1, 1, 0, 0)
The change was introduced in f35ab74752adb37138112657c1bc8b91f50e799b, which relates to #32892.
The initial ticket considers mainly parse_time
and parse_date
, but not the impacts on parse_datetime
.
I think this behaviour is valid, since a date without time can be considered a valid datetime object, with 0 as time values.
But since this change was not documented, I wanted to report it somewhere, because I couldn't find any other reference to it :)
Though I'm not sure this is the best way to share this information, so feel free to close the ticket.
Change History (4)
comment:1 by , 10 months ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:3 by , 10 months ago
Has patch: | set |
---|---|
Resolution: | invalid |
Status: | closed → new |
Summary: | Undocumented behaviour change of utils.dateparse.parse_datetime → Test utils.dateparse.parse_datetime() with a bare date |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Cleanup/optimization |
PR to add a regression test.
Thanks for the report, however, I'd treat pre-Django 4.0 behavior as a bug here and we don't document bugfixes.