14 lines
520 B
Python
14 lines
520 B
Python
from __future__ import annotations
|
|
|
|
from datetime import date, datetime, time, timedelta, timezone
|
|
from zoneinfo import ZoneInfo
|
|
|
|
|
|
def local_date_range_to_utc(start: date, end: date, tz: ZoneInfo) -> tuple[datetime, datetime]:
|
|
local_start = datetime.combine(start, time.min, tzinfo=tz)
|
|
local_end = datetime.combine(end + timedelta(days=1), time.min, tzinfo=tz)
|
|
return (
|
|
local_start.astimezone(timezone.utc).replace(tzinfo=None),
|
|
local_end.astimezone(timezone.utc).replace(tzinfo=None),
|
|
)
|