Closed
Description
>>> pd.Timestamp("10/27/23 14:19:01.000").unit
's'
>>> pd.Timestamp("01-01-2013T00:00:00.000000000+0000").unit
's'
In dateutil_parse we have
if reso == "microsecond":
if repl["microsecond"] == 0:
reso = "second"
elif repl["microsecond"] % 1000 == 0:
reso = "millisecond"
which ends up ignoring the trailing zeros. We end up with an incorrectly low-resolution unit
.
Surfaced while implementing #55564.