@@ -332,14 +332,14 @@ def _get_crontab_exclude_query(self):
332
332
# Handle each timezone specifically
333
333
* [
334
334
When (
335
- timezone = timezone_name ,
335
+ timezone = timezone ,
336
336
then = (
337
337
F ('hour_int' )
338
- + self ._get_timezone_offset (timezone_name )
338
+ + self ._get_timezone_offset (timezone )
339
339
+ 24
340
340
) % 24
341
341
)
342
- for timezone_name in self ._get_unique_timezones ()
342
+ for timezone in self ._get_unique_timezones ()
343
343
],
344
344
# Default case - use hour as is
345
345
default = F ('hour_int' )
@@ -387,7 +387,7 @@ def _get_unique_timezones(self) -> set[ZoneInfo]:
387
387
)
388
388
)
389
389
390
- def _get_timezone_offset (self , timezone_name ) :
390
+ def _get_timezone_offset (self , timezone : ZoneInfo ) -> int :
391
391
"""
392
392
Args:
393
393
timezone_name: The name of the timezone or a ZoneInfo object
@@ -403,17 +403,12 @@ def _get_timezone_offset(self, timezone_name):
403
403
else :
404
404
server_tz = ZoneInfo (str (server_time .tzinfo ))
405
405
406
- if isinstance (timezone_name , ZoneInfo ):
407
- timezone_name = timezone_name .key
408
-
409
- target_tz = ZoneInfo (timezone_name )
410
-
411
406
# Use a fixed point in time for the calculation to avoid DST issues
412
407
fixed_dt = datetime .datetime (2023 , 1 , 1 , 12 , 0 , 0 )
413
408
414
409
# Calculate the offset
415
410
dt1 = fixed_dt .replace (tzinfo = server_tz )
416
- dt2 = fixed_dt .replace (tzinfo = target_tz )
411
+ dt2 = fixed_dt .replace (tzinfo = timezone )
417
412
418
413
# Calculate hour difference
419
414
offset_seconds = (
0 commit comments