Opened 23 months ago
Closed 23 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 , 23 months ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
comment:3 by , 23 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.