@@ -332,14 +332,14 @@ def _get_crontab_exclude_query(self):
332332 # Handle each timezone specifically
333333 * [
334334 When (
335- timezone = timezone_name ,
335+ timezone = timezone ,
336336 then = (
337337 F ('hour_int' )
338- + self ._get_timezone_offset (timezone_name )
338+ + self ._get_timezone_offset (timezone )
339339 + 24
340340 ) % 24
341341 )
342- for timezone_name in self ._get_unique_timezones ()
342+ for timezone in self ._get_unique_timezones ()
343343 ],
344344 # Default case - use hour as is
345345 default = F ('hour_int' )
@@ -387,7 +387,7 @@ def _get_unique_timezones(self) -> set[ZoneInfo]:
387387 )
388388 )
389389
390- def _get_timezone_offset (self , timezone_name ) :
390+ def _get_timezone_offset (self , timezone : ZoneInfo ) -> int :
391391 """
392392 Args:
393393 timezone_name: The name of the timezone or a ZoneInfo object
@@ -403,17 +403,12 @@ def _get_timezone_offset(self, timezone_name):
403403 else :
404404 server_tz = ZoneInfo (str (server_time .tzinfo ))
405405
406- if isinstance (timezone_name , ZoneInfo ):
407- timezone_name = timezone_name .key
408-
409- target_tz = ZoneInfo (timezone_name )
410-
411406 # Use a fixed point in time for the calculation to avoid DST issues
412407 fixed_dt = datetime .datetime (2023 , 1 , 1 , 12 , 0 , 0 )
413408
414409 # Calculate the offset
415410 dt1 = fixed_dt .replace (tzinfo = server_tz )
416- dt2 = fixed_dt .replace (tzinfo = target_tz )
411+ dt2 = fixed_dt .replace (tzinfo = timezone )
417412
418413 # Calculate hour difference
419414 offset_seconds = (
0 commit comments