Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/source/whatsnew/v2.0.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ Datetimelike
- Bug in ``pandas.tseries.holiday.Holiday`` where a half-open date interval causes inconsistent return types from :meth:`USFederalHolidayCalendar.holidays` (:issue:`49075`)
- Bug in rendering :class:`DatetimeIndex` and :class:`Series` and :class:`DataFrame` with timezone-aware dtypes with ``dateutil`` or ``zoneinfo`` timezones near daylight-savings transitions (:issue:`49684`)
- Bug in :func:`to_datetime` was raising ``ValueError`` when parsing :class:`Timestamp`, ``datetime.datetime``, ``datetime.date``, or ``np.datetime64`` objects when non-ISO8601 ``format`` was passed (:issue:`49298`, :issue:`50036`)
- Bug in :class:`Timestamp` was showing ``UserWarning`` which was not actionable by users (:issue:`50232`)
-

Timedelta
Expand Down
24 changes: 0 additions & 24 deletions pandas/_libs/tslibs/parsing.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,6 @@ class DateParseError(ValueError):
_DEFAULT_DATETIME = datetime(1, 1, 1).replace(hour=0, minute=0,
second=0, microsecond=0)

PARSING_WARNING_MSG = (
"Parsing dates in {format} format when dayfirst={dayfirst} was specified. "
"This may lead to inconsistently parsed dates! Specify a format "
"to ensure consistent parsing."
)

cdef:
set _not_datelike_strings = {"a", "A", "m", "M", "p", "P", "t", "T"}

Expand Down Expand Up @@ -203,28 +197,10 @@ cdef object _parse_delimited_date(str date_string, bint dayfirst):
# date_string can't be converted to date, above format
return None, None

swapped_day_and_month = False
if 1 <= month <= MAX_DAYS_IN_MONTH and 1 <= day <= MAX_DAYS_IN_MONTH \
and (month <= MAX_MONTH or day <= MAX_MONTH):
if (month > MAX_MONTH or (day <= MAX_MONTH and dayfirst)) and can_swap:
day, month = month, day
swapped_day_and_month = True
if dayfirst and not swapped_day_and_month:
warnings.warn(
PARSING_WARNING_MSG.format(
format="MM/DD/YYYY",
dayfirst="True",
),
stacklevel=find_stack_level(),
)
elif not dayfirst and swapped_day_and_month:
warnings.warn(
PARSING_WARNING_MSG.format(
format="DD/MM/YYYY",
dayfirst="False (the default)",
),
stacklevel=find_stack_level(),
)
# In Python <= 3.6.0 there is no range checking for invalid dates
# in C api, thus we call faster C version for 3.6.1 or newer
return datetime_new(year, month, day, 0, 0, 0, 0, None), reso
Expand Down
8 changes: 8 additions & 0 deletions pandas/tests/scalar/timestamp/test_timestamp.py
Original file line number Diff line number Diff line change
Expand Up @@ -1082,3 +1082,11 @@ def test_as_unit_non_nano(self):
== res.nanosecond
== 0
)


def test_delimited_date():
# https://github.com/pandas-dev/pandas/issues/50231
with tm.assert_produces_warning(None):
result = Timestamp("13-01-2000")
expected = Timestamp(2000, 1, 13)
assert result == expected