@@ -611,15 +611,12 @@ def _simple_new(cls, values, name=None, freq=None, tz=None,
611
611
dtype = dtype , ** kwargs )
612
612
values = np .array (values , copy = False )
613
613
614
+ if not is_datetime64_dtype (values ):
615
+ values = _ensure_int64 (values ).view (_NS_DTYPE )
616
+
614
617
assert isinstance (values , np .ndarray ), "values is not an np.ndarray"
615
618
assert is_datetime64_dtype (values )
616
619
617
- if is_object_dtype (values ):
618
- return cls (values , name = name , freq = freq , tz = tz ,
619
- dtype = dtype , ** kwargs ).values
620
- elif not is_datetime64_dtype (values ):
621
- values = _ensure_int64 (values ).view (_NS_DTYPE )
622
-
623
620
result = object .__new__ (cls )
624
621
result ._data = values
625
622
result .name = name
@@ -2094,9 +2091,7 @@ def _generate_regular_range(start, end, periods, freq):
2094
2091
"if a 'period' is given." )
2095
2092
2096
2093
data = np .arange (b , e , stride , dtype = np .int64 )
2097
-
2098
- # _simple_new is getting an array of int64 here
2099
- data = DatetimeIndex ._simple_new (data , None , tz = tz )
2094
+ data = DatetimeIndex ._simple_new (data .view (_NS_DTYPE ), None , tz = tz )
2100
2095
else :
2101
2096
if isinstance (start , Timestamp ):
2102
2097
start = start .to_pydatetime ()
0 commit comments