Skip to content

Commit bb3b37c

Browse files
committed
Fixes timezone_() not setting the tzinfo properly.
1 parent f589b3c commit bb3b37c

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

pendulum/pendulum.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from .tz import Timezone, UTC, FixedTimezone, local_timezone
1818
from .tz.timezone_info import TimezoneInfo
1919
from .formatting import FORMATTERS
20-
from ._compat import basestring
2120
from .constants import (
2221
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
2322
THURSDAY, FRIDAY, SATURDAY,
@@ -500,12 +499,11 @@ def _setter(self, **kwargs):
500499
return self._tz.convert(self.replace(**kwargs))
501500

502501
def timezone_(self, tz):
503-
tz = self._safe_create_datetime_zone(tz)
504-
505-
dt = self.copy()
506-
dt._tz = tz
507-
508-
return dt
502+
return self.__class__(
503+
self.year, self.month, self.day,
504+
self.hour, self.minute, self.second, self.microsecond,
505+
tz
506+
)
509507

510508
def tz_(self, tz):
511509
return self.timezone_(tz)

tests/pendulum_tests/test_fluent_setters.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def test_fluid_timezone_setter(self):
6161
new = d.timezone_('Europe/Paris')
6262
self.assertIsInstanceOfPendulum(new)
6363
self.assertEqual('Europe/Paris', new.timezone_name)
64+
self.assertEqual('Europe/Paris', new.tzinfo.tz.name)
6465

6566
def test_fluid_tz_setter(self):
6667
d = Pendulum.create(2016, 7, 2, 0, 41, 20)

0 commit comments

Comments
 (0)