@@ -480,25 +480,30 @@ def copy(self):
480480 ### Getters/Setters
481481
482482 def year_ (self , year ):
483- return self .instance ( self . _datetime . replace ( year = year ) )
483+ return self ._setter ( year = year )
484484
485485 def month_ (self , month ):
486- return self .instance ( self . _datetime . replace ( month = month ) )
486+ return self ._setter ( month = month )
487487
488488 def day_ (self , day ):
489- return self .instance ( self . _datetime . replace ( day = day ) )
489+ return self ._setter ( day = day )
490490
491491 def hour_ (self , hour ):
492- return self .instance ( self . _datetime . replace ( hour = hour ) )
492+ return self ._setter ( hour = hour )
493493
494494 def minute_ (self , minute ):
495- return self .instance ( self . _datetime . replace ( minute = minute ) )
495+ return self ._setter ( minute = minute )
496496
497497 def second_ (self , second ):
498- return self .instance ( self . _datetime . replace ( second = second ) )
498+ return self ._setter ( second = second )
499499
500500 def microsecond_ (self , microsecond ):
501- return self .instance (self ._datetime .replace (microsecond = microsecond ))
501+ return self ._setter (microsecond = microsecond )
502+
503+ def _setter (self , ** kwargs ):
504+ kwargs ['tzinfo' ] = None
505+
506+ return self .instance (self ._datetime .replace (** kwargs ), self ._tz )
502507
503508 def timezone_ (self , tz ):
504509 tz = self ._safe_create_datetime_zone (tz )
@@ -651,10 +656,11 @@ def with_date(self, year, month, day):
651656 :rtype: Pendulum
652657 """
653658 dt = self ._datetime .replace (
654- year = int (year ), month = int (month ), day = int (day )
659+ year = int (year ), month = int (month ), day = int (day ),
660+ tzinfo = None
655661 )
656662
657- return self .instance (dt )
663+ return self .instance (dt , self . _tz )
658664
659665 def with_time (self , hour , minute , second , microsecond = 0 ):
660666 """
@@ -676,10 +682,11 @@ def with_time(self, hour, minute, second, microsecond=0):
676682 """
677683 dt = self ._datetime .replace (
678684 hour = int (hour ), minute = int (minute ), second = int (second ),
679- microsecond = microsecond
685+ microsecond = microsecond ,
686+ tzinfo = None
680687 )
681688
682- return self .instance (dt )
689+ return self .instance (dt , self . _tz )
683690
684691 def with_date_time (self , year , month , day , hour , minute , second , microsecond = 0 ):
685692 """
@@ -697,10 +704,11 @@ def with_date_time(self, year, month, day, hour, minute, second, microsecond=0):
697704 dt = self ._datetime .replace (
698705 year = year , month = month , day = day ,
699706 hour = int (hour ), minute = int (minute ), second = int (second ),
700- microsecond = microsecond
707+ microsecond = microsecond ,
708+ tzinfo = None
701709 )
702710
703- return self .instance (dt )
711+ return self .instance (dt , self . _tz )
704712
705713 def with_time_from_string (self , time ):
706714 """
0 commit comments