@@ -335,14 +335,14 @@ def _get_crontab_exclude_query(self):
335
335
# Handle each timezone specifically
336
336
* [
337
337
When (
338
- timezone = timezone_name ,
338
+ timezone = timezone ,
339
339
then = (
340
340
F ('hour_int' )
341
- + self ._get_timezone_offset (timezone_name )
341
+ + self ._get_timezone_offset (timezone )
342
342
+ 24
343
343
) % 24
344
344
)
345
- for timezone_name in self ._get_unique_timezones ()
345
+ for timezone in self ._get_unique_timezones ()
346
346
],
347
347
# Default case - use hour as is
348
348
default = F ('hour_int' )
@@ -381,7 +381,7 @@ def _get_unique_timezones(self) -> set[ZoneInfo]:
381
381
)
382
382
)
383
383
384
- def _get_timezone_offset (self , timezone_name ) :
384
+ def _get_timezone_offset (self , timezone : ZoneInfo ) -> int :
385
385
"""
386
386
Args:
387
387
timezone_name: The name of the timezone or a ZoneInfo object
@@ -397,17 +397,12 @@ def _get_timezone_offset(self, timezone_name):
397
397
else :
398
398
server_tz = ZoneInfo (str (server_time .tzinfo ))
399
399
400
- if isinstance (timezone_name , ZoneInfo ):
401
- timezone_name = timezone_name .key
402
-
403
- target_tz = ZoneInfo (timezone_name )
404
-
405
400
# Use a fixed point in time for the calculation to avoid DST issues
406
401
fixed_dt = datetime .datetime (2023 , 1 , 1 , 12 , 0 , 0 )
407
402
408
403
# Calculate the offset
409
404
dt1 = fixed_dt .replace (tzinfo = server_tz )
410
- dt2 = fixed_dt .replace (tzinfo = target_tz )
405
+ dt2 = fixed_dt .replace (tzinfo = timezone )
411
406
412
407
# Calculate hour difference
413
408
offset_seconds = (
0 commit comments