diff --git a/pandas/_libs/tslib.pyx b/pandas/_libs/tslib.pyx index 3c5854602df53..2352020b654cc 100644 --- a/pandas/_libs/tslib.pyx +++ b/pandas/_libs/tslib.pyx @@ -94,10 +94,15 @@ def _test_parse_iso8601(ts: str): _TSObject obj int out_local = 0, out_tzoffset = 0 NPY_DATETIMEUNIT out_bestunit + bint failed obj = _TSObject() - string_to_dts(ts, &obj.dts, &out_bestunit, &out_local, &out_tzoffset, True) + failed = string_to_dts( + ts, &obj.dts, &out_bestunit, &out_local, &out_tzoffset, False + ) + if failed: + raise ValueError("string_to_dts failed") try: obj.value = npy_datetimestruct_to_datetime(NPY_FR_ns, &obj.dts) except OverflowError as err: diff --git a/pandas/_libs/tslibs/np_datetime.pxd b/pandas/_libs/tslibs/np_datetime.pxd index 3e5654b70cd92..6d7ad4bae8a1d 100644 --- a/pandas/_libs/tslibs/np_datetime.pxd +++ b/pandas/_libs/tslibs/np_datetime.pxd @@ -91,7 +91,7 @@ cdef int string_to_dts( bint want_exc, str format = *, bint exact = * -) except? -1 +) cdef NPY_DATETIMEUNIT get_unit_from_dtype(cnp.dtype dtype) diff --git a/pandas/_libs/tslibs/np_datetime.pyx b/pandas/_libs/tslibs/np_datetime.pyx index 1b7f04fe17238..5853879f98679 100644 --- a/pandas/_libs/tslibs/np_datetime.pyx +++ b/pandas/_libs/tslibs/np_datetime.pyx @@ -346,7 +346,7 @@ cdef int string_to_dts( bint want_exc, str format=None, bint exact=True, -) except? -1: +): cdef: Py_ssize_t length const char* buf