diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index ee9b948a76ac8..5f204a8c18368 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -486,8 +486,8 @@ def snap(self, freq="S"): s = t1 snapped[i] = s - # we know it conforms; skip check - return DatetimeIndex._simple_new(snapped, name=self.name, tz=self.tz, freq=freq) + dta = DatetimeArray(snapped, dtype=self.dtype) + return DatetimeIndex._simple_new(dta, name=self.name) def _parsed_string_to_bounds(self, reso, parsed): """ diff --git a/pandas/tests/indexes/datetimes/test_snap.py b/pandas/tests/indexes/datetimes/test_snap.py index a21d27d23f6b5..8baea9fe8341f 100644 --- a/pandas/tests/indexes/datetimes/test_snap.py +++ b/pandas/tests/indexes/datetimes/test_snap.py @@ -28,6 +28,8 @@ def test_dti_snap(name, tz): expected = expected.repeat([3, 4]) tm.assert_index_equal(result, expected) assert result.tz == expected.tz + assert result.freq is None + assert expected.freq is None result = dti.snap(freq="B") @@ -35,3 +37,5 @@ def test_dti_snap(name, tz): expected = expected.repeat([1, 1, 1, 2, 2]) tm.assert_index_equal(result, expected) assert result.tz == expected.tz + assert result.freq is None + assert expected.freq is None