@@ -237,9 +237,6 @@ class Timestamp(_Timestamp):
237
237
numpy unit used for conversion, if ts_input is int or float
238
238
"""
239
239
240
- # Do not add ``dayfirst`` and ``yearfist`` to Timestamp based on the discussion
241
- # https://github.com/pydata/pandas/pull/7599
242
-
243
240
@classmethod
244
241
def fromordinal (cls , ordinal , offset = None , tz = None ):
245
242
""" passed an ordinal, translate and convert to a ts
@@ -295,7 +292,7 @@ class Timestamp(_Timestamp):
295
292
cdef _TSObject ts
296
293
cdef _Timestamp ts_base
297
294
298
- ts = convert_to_tsobject(ts_input, tz, unit)
295
+ ts = convert_to_tsobject(ts_input, tz, unit, 0 , 0 )
299
296
300
297
if ts.value == NPY_NAT:
301
298
return NaT
@@ -544,7 +541,7 @@ class Timestamp(_Timestamp):
544
541
545
542
if self .nanosecond != 0 and warn:
546
543
print ' Warning: discarding nonzero nanoseconds'
547
- ts = convert_to_tsobject(self , self .tzinfo, None )
544
+ ts = convert_to_tsobject(self , self .tzinfo, None , 0 , 0 )
548
545
549
546
return datetime(ts.dts.year, ts.dts.month, ts.dts.day,
550
547
ts.dts.hour, ts.dts.min, ts.dts.sec,
@@ -997,7 +994,7 @@ cdef class _Timestamp(datetime):
997
994
cdef:
998
995
pandas_datetimestruct dts
999
996
_TSObject ts
1000
- ts = convert_to_tsobject(self , self .tzinfo, None )
997
+ ts = convert_to_tsobject(self , self .tzinfo, None , 0 , 0 )
1001
998
dts = ts.dts
1002
999
return datetime(dts.year, dts.month, dts.day,
1003
1000
dts.hour, dts.min, dts.sec,
@@ -1237,7 +1234,8 @@ cpdef _get_utcoffset(tzinfo, obj):
1237
1234
return tzinfo.utcoffset(obj)
1238
1235
1239
1236
# helper to extract datetime and int64 from several different possibilities
1240
- cdef convert_to_tsobject(object ts, object tz, object unit):
1237
+ cdef convert_to_tsobject(object ts, object tz, object unit,
1238
+ bint dayfirst, bint yearfirst):
1241
1239
"""
1242
1240
Extract datetime and int64 from any of:
1243
1241
- np.int64 (with unit providing a possible modifier)
@@ -1259,7 +1257,7 @@ cdef convert_to_tsobject(object ts, object tz, object unit):
1259
1257
obj = _TSObject()
1260
1258
1261
1259
if util.is_string_object(ts):
1262
- return convert_str_to_tsobject(ts, tz, unit)
1260
+ return convert_str_to_tsobject(ts, tz, unit, dayfirst, yearfirst )
1263
1261
1264
1262
if ts is None or ts is NaT:
1265
1263
obj.value = NPY_NAT
@@ -1329,7 +1327,7 @@ cdef convert_to_tsobject(object ts, object tz, object unit):
1329
1327
elif PyDate_Check(ts):
1330
1328
# Keep the converter same as PyDateTime's
1331
1329
ts = datetime.combine(ts, datetime_time())
1332
- return convert_to_tsobject(ts, tz, None )
1330
+ return convert_to_tsobject(ts, tz, None , 0 , 0 )
1333
1331
elif getattr (ts, ' _typ' , None ) == ' period' :
1334
1332
raise ValueError (" Cannot convert Period to Timestamp unambiguously. Use to_timestamp" )
1335
1333
else :
@@ -1390,7 +1388,7 @@ cpdef convert_str_to_tsobject(object ts, object tz, object unit,
1390
1388
except Exception :
1391
1389
raise ValueError
1392
1390
1393
- return convert_to_tsobject(ts, tz, unit)
1391
+ return convert_to_tsobject(ts, tz, unit, dayfirst, yearfirst )
1394
1392
1395
1393
def _test_parse_iso8601 (object ts ):
1396
1394
"""
@@ -1581,7 +1579,7 @@ def datetime_to_datetime64(ndarray[object] values):
1581
1579
else :
1582
1580
inferred_tz = _get_zone(val.tzinfo)
1583
1581
1584
- _ts = convert_to_tsobject(val, None , None )
1582
+ _ts = convert_to_tsobject(val, None , None , 0 , 0 )
1585
1583
iresult[i] = _ts.value
1586
1584
_check_dts_bounds(& _ts.dts)
1587
1585
else :
@@ -1993,7 +1991,7 @@ cpdef array_to_datetime(ndarray[object] values, errors='raise',
1993
1991
seen_datetime= 1
1994
1992
if val.tzinfo is not None :
1995
1993
if utc_convert:
1996
- _ts = convert_to_tsobject(val, None , unit)
1994
+ _ts = convert_to_tsobject(val, None , unit, 0 , 0 )
1997
1995
iresult[i] = _ts.value
1998
1996
try :
1999
1997
_check_dts_bounds(& _ts.dts)
@@ -2091,7 +2089,7 @@ cpdef array_to_datetime(ndarray[object] values, errors='raise',
2091
2089
raise TypeError (" invalid string coercion to datetime" )
2092
2090
2093
2091
try :
2094
- _ts = convert_to_tsobject(py_dt, None , None )
2092
+ _ts = convert_to_tsobject(py_dt, None , None , 0 , 0 )
2095
2093
iresult[i] = _ts.value
2096
2094
except ValueError :
2097
2095
if is_coerce:
@@ -2180,7 +2178,7 @@ def parse_str_array_to_datetime(ndarray values, dayfirst=False,
2180
2178
yearfirst = yearfirst, freq = freq)
2181
2179
except Exception :
2182
2180
raise ValueError
2183
- _ts = convert_to_tsobject(py_dt, None , None )
2181
+ _ts = convert_to_tsobject(py_dt, None , None , 0 , 0 )
2184
2182
iresult[i] = _ts.value
2185
2183
2186
2184
return iresult
@@ -3466,7 +3464,7 @@ def pydt_to_i8(object pydt):
3466
3464
cdef:
3467
3465
_TSObject ts
3468
3466
3469
- ts = convert_to_tsobject(pydt, None , None )
3467
+ ts = convert_to_tsobject(pydt, None , None , 0 , 0 )
3470
3468
3471
3469
return ts.value
3472
3470
@@ -4230,7 +4228,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4230
4228
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4231
4229
4232
4230
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4233
- ts = convert_to_tsobject(dtindex[i], None , None )
4231
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4234
4232
dom = dts.day
4235
4233
dow = ts_dayofweek(ts)
4236
4234
@@ -4254,7 +4252,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4254
4252
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4255
4253
4256
4254
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4257
- ts = convert_to_tsobject(dtindex[i], None , None )
4255
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4258
4256
isleap = is_leapyear(dts.year)
4259
4257
mo_off = _month_offset[isleap, dts.month - 1 ]
4260
4258
dom = dts.day
@@ -4286,7 +4284,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4286
4284
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4287
4285
4288
4286
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4289
- ts = convert_to_tsobject(dtindex[i], None , None )
4287
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4290
4288
dom = dts.day
4291
4289
dow = ts_dayofweek(ts)
4292
4290
@@ -4310,7 +4308,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4310
4308
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4311
4309
4312
4310
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4313
- ts = convert_to_tsobject(dtindex[i], None , None )
4311
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4314
4312
isleap = is_leapyear(dts.year)
4315
4313
mo_off = _month_offset[isleap, dts.month - 1 ]
4316
4314
dom = dts.day
@@ -4342,7 +4340,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4342
4340
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4343
4341
4344
4342
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4345
- ts = convert_to_tsobject(dtindex[i], None , None )
4343
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4346
4344
dom = dts.day
4347
4345
dow = ts_dayofweek(ts)
4348
4346
@@ -4366,7 +4364,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4366
4364
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4367
4365
4368
4366
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4369
- ts = convert_to_tsobject(dtindex[i], None , None )
4367
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4370
4368
isleap = is_leapyear(dts.year)
4371
4369
dom = dts.day
4372
4370
mo_off = _month_offset[isleap, dts.month - 1 ]
@@ -4382,7 +4380,7 @@ def get_start_end_field(ndarray[int64_t] dtindex, object field, object freqstr=N
4382
4380
if dtindex[i] == NPY_NAT: out[i] = - 1 ; continue
4383
4381
4384
4382
pandas_datetime_to_datetimestruct(dtindex[i], PANDAS_FR_ns, & dts)
4385
- ts = convert_to_tsobject(dtindex[i], None , None )
4383
+ ts = convert_to_tsobject(dtindex[i], None , None , 0 , 0 )
4386
4384
isleap = is_leapyear(dts.year)
4387
4385
mo_off = _month_offset[isleap, dts.month - 1 ]
4388
4386
dom = dts.day
@@ -4429,7 +4427,7 @@ def get_date_name_field(ndarray[int64_t] dtindex, object field):
4429
4427
4430
4428
4431
4429
cdef inline int m8_weekday(int64_t val):
4432
- ts = convert_to_tsobject(val, None , None )
4430
+ ts = convert_to_tsobject(val, None , None , 0 , 0 )
4433
4431
return ts_dayofweek(ts)
4434
4432
4435
4433
cdef int64_t DAY_NS = 86400000000000L L
0 commit comments