|
4 | 4 |
|
5 | 5 | import numpy as np
|
6 | 6 | import pytz
|
7 |
| - |
| 7 | +from distutils.version import LooseVersion |
8 | 8 | from pandas.types.dtypes import DatetimeTZDtype
|
9 | 9 | from pandas import (Index, Series, DataFrame, isnull, Timestamp)
|
10 | 10 |
|
@@ -1206,6 +1206,28 @@ def f():
|
1206 | 1206 | dt = Timestamp('2013-11-03 01:59:59.999999-0400', tz='US/Eastern')
|
1207 | 1207 | self.assertEqual(dt.tz_localize(None), dt.replace(tzinfo=None))
|
1208 | 1208 |
|
| 1209 | + def test_ambiguous_compat(self): |
| 1210 | + # validate that pytz and dateutil are compat for dst |
| 1211 | + # when the transition happens |
| 1212 | + tm._skip_if_no_dateutil() |
| 1213 | + tm._skip_if_no_pytz() |
| 1214 | + |
| 1215 | + result_pytz = Timestamp('2013-10-27 01:00:00').tz_localize('Europe/London', ambiguous=0) |
| 1216 | + result_dateutil = Timestamp('2013-10-27 01:00:00').tz_localize('dateutil//usr/share/zoneinfo/Europe/London', ambiguous=0) |
| 1217 | + self.assertEqual(result_pytz.value, result_dateutil.value) |
| 1218 | + self.assertEqual(result_pytz.value, 1382835600000000000) |
| 1219 | + self.assertEqual(str(result_pytz), str(result_dateutil)) |
| 1220 | + |
| 1221 | + # 1 hour difference |
| 1222 | + result_pytz = Timestamp('2013-10-27 01:00:00').tz_localize('Europe/London', ambiguous=1) |
| 1223 | + result_dateutil = Timestamp('2013-10-27 01:00:00').tz_localize('dateutil//usr/share/zoneinfo/Europe/London', ambiguous=1) |
| 1224 | + self.assertEqual(result_pytz.value, result_dateutil.value) |
| 1225 | + self.assertEqual(result_pytz.value, 1382832000000000000) |
| 1226 | + |
| 1227 | + # dateutil < 2.6 is buggy w.r.t. ambiguous timezones |
| 1228 | + if dateutil.__version__ > LooseVersion('2.5.3'): |
| 1229 | + self.assertEqual(str(result_pytz), str(result_dateutil)) |
| 1230 | + |
1209 | 1231 | def test_index_equals_with_tz(self):
|
1210 | 1232 | left = date_range('1/1/2011', periods=100, freq='H', tz='utc')
|
1211 | 1233 | right = date_range('1/1/2011', periods=100, freq='H', tz='US/Eastern')
|
|
0 commit comments