@@ -2173,10 +2173,31 @@ def test_constructor_coverage(self):
21732173 def test_constructor_datetime64_tzformat (self ):
21742174 # GH 6572
21752175 tm ._skip_if_no_pytz ()
2176+ import pytz
2177+ # ISO 8601 format results in pytz.FixedOffset
2178+ for freq in ['AS' , 'W-SUN' ]:
2179+ idx = date_range ('2013-01-01T00:00:00-05:00' , '2016-01-01T23:59:59-05:00' , freq = freq )
2180+ expected = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
2181+ freq = freq , tz = pytz .FixedOffset (- 300 ))
2182+ tm .assert_index_equal (idx , expected )
2183+ # Unable to use `US/Eastern` because of DST
2184+ expected_i8 = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
2185+ freq = freq , tz = 'America/Lima' )
2186+ self .assert_numpy_array_equal (idx .asi8 , expected_i8 .asi8 )
2187+
2188+ idx = date_range ('2013-01-01T00:00:00+09:00' , '2016-01-01T23:59:59+09:00' , freq = freq )
2189+ expected = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
2190+ freq = freq , tz = pytz .FixedOffset (540 ))
2191+ tm .assert_index_equal (idx , expected )
2192+ expected_i8 = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
2193+ freq = freq , tz = 'Asia/Tokyo' )
2194+ self .assert_numpy_array_equal (idx .asi8 , expected_i8 .asi8 )
2195+
21762196 tm ._skip_if_no_dateutil ()
21772197 from dateutil .tz import tzoffset
2198+ # Non ISO 8601 format results in dateutil.tz.tzoffset
21782199 for freq in ['AS' , 'W-SUN' ]:
2179- idx = date_range ('2013-01-01T00 :00:00-05 :00' , '2016-01-01T23 :59:59-05 :00' , freq = freq )
2200+ idx = date_range ('2013/1/1 0 :00:00-5 :00' , '2016/1/1 23 :59:59-5 :00' , freq = freq )
21802201 expected = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
21812202 freq = freq , tz = tzoffset (None , - 18000 ))
21822203 tm .assert_index_equal (idx , expected )
@@ -2185,7 +2206,7 @@ def test_constructor_datetime64_tzformat(self):
21852206 freq = freq , tz = 'America/Lima' )
21862207 self .assert_numpy_array_equal (idx .asi8 , expected_i8 .asi8 )
21872208
2188- idx = date_range ('2013-01-01T00 :00:00+09 :00' , '2016-01-01T23 :59:59+09:00' , freq = freq )
2209+ idx = date_range ('2013/1/1 0 :00:00+9 :00' , '2016/1/1 23 :59:59+09:00' , freq = freq )
21892210 expected = date_range ('2013-01-01T00:00:00' , '2016-01-01T23:59:59' ,
21902211 freq = freq , tz = tzoffset (None , 32400 ))
21912212 tm .assert_index_equal (idx , expected )
0 commit comments