@@ -1516,8 +1516,12 @@ cdef inline void _localize_tso(_TSObject obj, object tz):
1516
1516
dt = datetime(obj.dts.year, obj.dts.month, obj.dts.day, obj.dts.hour,
1517
1517
obj.dts.min, obj.dts.sec, obj.dts.us, tz)
1518
1518
delta = int (total_seconds(_get_utcoffset(tz, dt))) * 1000000000
1519
- pandas_datetime_to_datetimestruct(obj.value + delta,
1520
- PANDAS_FR_ns, & obj.dts)
1519
+ if obj.value != NPY_NAT:
1520
+ pandas_datetime_to_datetimestruct(obj.value + delta,
1521
+ PANDAS_FR_ns, & obj.dts)
1522
+ else :
1523
+ pandas_datetime_to_datetimestruct(obj.value,
1524
+ PANDAS_FR_ns, & obj.dts)
1521
1525
obj.tzinfo = tz
1522
1526
else :
1523
1527
# Adjust datetime64 timestamp, recompute datetimestruct
@@ -1529,20 +1533,28 @@ cdef inline void _localize_tso(_TSObject obj, object tz):
1529
1533
# static/pytz/dateutil specific code
1530
1534
if _is_fixed_offset(tz):
1531
1535
# statictzinfo
1532
- if len (deltas) > 0 :
1536
+ if len (deltas) > 0 and obj.value ! = NPY_NAT :
1533
1537
pandas_datetime_to_datetimestruct(obj.value + deltas[0 ],
1534
1538
PANDAS_FR_ns, & obj.dts)
1535
1539
else :
1536
1540
pandas_datetime_to_datetimestruct(obj.value, PANDAS_FR_ns, & obj.dts)
1537
1541
obj.tzinfo = tz
1538
1542
elif _treat_tz_as_pytz(tz):
1539
1543
inf = tz._transition_info[pos]
1540
- pandas_datetime_to_datetimestruct(obj.value + deltas[pos],
1541
- PANDAS_FR_ns, & obj.dts)
1544
+ if obj.value != NPY_NAT:
1545
+ pandas_datetime_to_datetimestruct(obj.value + deltas[pos],
1546
+ PANDAS_FR_ns, & obj.dts)
1547
+ else :
1548
+ pandas_datetime_to_datetimestruct(obj.value,
1549
+ PANDAS_FR_ns, & obj.dts)
1542
1550
obj.tzinfo = tz._tzinfos[inf]
1543
1551
elif _treat_tz_as_dateutil(tz):
1544
- pandas_datetime_to_datetimestruct(obj.value + deltas[pos],
1545
- PANDAS_FR_ns, & obj.dts)
1552
+ if obj.value != NPY_NAT:
1553
+ pandas_datetime_to_datetimestruct(obj.value + deltas[pos],
1554
+ PANDAS_FR_ns, & obj.dts)
1555
+ else :
1556
+ pandas_datetime_to_datetimestruct(obj.value,
1557
+ PANDAS_FR_ns, & obj.dts)
1546
1558
obj.tzinfo = tz
1547
1559
else :
1548
1560
obj.tzinfo = tz
0 commit comments