@@ -28,11 +28,12 @@ import pytz
28
28
29
29
from pandas._libs.tslibs.np_datetime cimport (
30
30
NPY_DATETIMEUNIT,
31
+ NPY_FR_ns,
31
32
check_dts_bounds,
32
- dt64_to_dtstruct,
33
33
dtstruct_to_dt64,
34
34
get_datetime64_value,
35
35
npy_datetimestruct,
36
+ pandas_datetime_to_datetimestruct,
36
37
pydate_to_dt64,
37
38
pydatetime_to_dt64,
38
39
string_to_dts,
@@ -107,7 +108,8 @@ def format_array_from_datetime(
107
108
ndarray[int64_t] values ,
108
109
tzinfo tz = None ,
109
110
str format = None ,
110
- object na_rep = None
111
+ object na_rep = None ,
112
+ NPY_DATETIMEUNIT reso = NPY_FR_ns,
111
113
) -> np.ndarray:
112
114
"""
113
115
return a np object array of the string formatted values
@@ -120,6 +122,7 @@ def format_array_from_datetime(
120
122
a strftime capable string
121
123
na_rep : optional , default is None
122
124
a nat format
125
+ reso : NPY_DATETIMEUNIT , default NPY_FR_ns
123
126
124
127
Returns
125
128
-------
@@ -141,7 +144,7 @@ def format_array_from_datetime(
141
144
# a format based on precision
142
145
basic_format = format is None and tz is None
143
146
if basic_format:
144
- reso_obj = get_resolution(values)
147
+ reso_obj = get_resolution(values, reso = reso )
145
148
show_ns = reso_obj == Resolution.RESO_NS
146
149
show_us = reso_obj == Resolution.RESO_US
147
150
show_ms = reso_obj == Resolution.RESO_MS
@@ -153,7 +156,7 @@ def format_array_from_datetime(
153
156
result[i] = na_rep
154
157
elif basic_format:
155
158
156
- dt64_to_dtstruct (val, & dts)
159
+ pandas_datetime_to_datetimestruct (val, reso , & dts)
157
160
res = (f' {dts.year}-{dts.month:02d}-{dts.day:02d} '
158
161
f' {dts.hour:02d}:{dts.min:02d}:{dts.sec:02d}' )
159
162
@@ -169,7 +172,7 @@ def format_array_from_datetime(
169
172
170
173
else :
171
174
172
- ts = Timestamp(val, tz = tz)
175
+ ts = Timestamp._from_value_and_reso (val, reso = reso , tz = tz)
173
176
if format is None :
174
177
result[i] = str (ts)
175
178
else :
0 commit comments