@@ -43,8 +43,8 @@ def load(cls, name):
4343 :rtype: Timezone
4444 """
4545 # Shortcut to UTC
46- # if name.upper() == 'UTC':
47- # return UTC
46+ if name .upper () == 'UTC' :
47+ return UTCTimezone
4848
4949 if name not in cls ._cache :
5050 (transitions ,
@@ -69,11 +69,19 @@ def convert(self, dt):
6969
7070 Otherwise, it will convert the datetime to local time.
7171 """
72+ from ..pendulum import Pendulum
73+
7274 if dt .tzinfo is None :
7375 # we assume local time
74- return self ._normalize (dt )
76+ converted = self ._normalize (dt )
77+
78+ else :
79+ converted = self ._convert (dt )
7580
76- return self ._convert (dt )
81+ if isinstance (dt , Pendulum ):
82+ return Pendulum .instance (converted )
83+
84+ return converted
7785
7886 def _normalize (self , dt ):
7987 # if tzinfo is set, something wrong happened
@@ -229,13 +237,13 @@ def _get_timestamp(self, dt):
229237
230238 def __repr__ (self ):
231239 return '<Timezone [{}]>' .format (self ._name )
232-
233-
240+
241+
234242class FixedTimezone (Timezone ):
235243 """
236244 A timezone that has a fixed offset to UTC.
237245 """
238-
246+
239247 def __init__ (self , offset ):
240248 """
241249 :param offset: offset to UTC in seconds.
@@ -249,7 +257,7 @@ def __init__(self, offset):
249257 name = '{0}{1:02d}:{2:02d}' .format (sign , hour , minute )
250258
251259 transition_type = TransitionType (int (offset ), False , '' )
252-
260+
253261 super (FixedTimezone , self ).__init__ (name , [], [], transition_type )
254262
255263
0 commit comments