Skip to content

Commit 06e44dd

Browse files
committed
Merge pull request #8990 from jreback/iterate
REGR: Regression in DatetimeIndex iteration with a Fixed/Local offset timezone (GH8890)
2 parents 73bacad + 27133c8 commit 06e44dd

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

doc/source/whatsnew/v0.15.2.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ Bug Fixes
118118
s.loc['c':'a':-1]
119119

120120
- Report a ``TypeError`` when invalid/no paramaters are passed in a groupby (:issue:`8015`)
121+
- Regression in DatetimeIndex iteration with a Fixed/Local offset timezone (:issue:`8890`)
121122
- Bug in packaging pandas with ``py2app/cx_Freeze`` (:issue:`8602`, :issue:`8831`)
122123
- Bug in ``groupby`` signatures that didn't include \*args or \*\*kwargs (:issue:`8733`).
123124
- ``io.data.Options`` now raises ``RemoteDataError`` when no expiry dates are available from Yahoo and when it receives no data from Yahoo (:issue:`8761`), (:issue:`8783`).

pandas/tseries/tests/test_timeseries.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,6 +2313,27 @@ def test_map(self):
23132313
exp = [f(x) for x in rng]
23142314
self.assert_numpy_array_equal(result, exp)
23152315

2316+
2317+
def test_iteration_preserves_tz(self):
2318+
2319+
tm._skip_if_no_dateutil()
2320+
2321+
# GH 8890
2322+
import dateutil
2323+
index = date_range("2012-01-01", periods=3, freq='H', tz='US/Eastern')
2324+
2325+
for i, ts in enumerate(index):
2326+
result = ts
2327+
expected = index[i]
2328+
self.assertEqual(result, expected)
2329+
2330+
index = date_range("2012-01-01", periods=3, freq='H', tz=dateutil.tz.tzoffset(None, -28800))
2331+
2332+
for i, ts in enumerate(index):
2333+
result = ts
2334+
expected = index[i]
2335+
self.assertEqual(result, expected)
2336+
23162337
def test_misc_coverage(self):
23172338
rng = date_range('1/1/2000', periods=5)
23182339
result = rng.groupby(rng.day)

pandas/tslib.pyx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ def ints_to_pydatetime(ndarray[int64_t] arr, tz=None, offset=None, box=False):
122122
else:
123123
pandas_datetime_to_datetimestruct(value, PANDAS_FR_ns, &dts)
124124
dt = func_create(value, dts, tz, offset)
125-
result[i] = dt + tz.utcoffset(dt)
125+
if not box:
126+
dt = dt + tz.utcoffset(dt)
127+
result[i] = dt
126128
else:
127129
trans = _get_transitions(tz)
128130
deltas = _get_deltas(tz)

0 commit comments

Comments
 (0)