init
This commit is contained in:
23
assistant_bot/time_utils.py
Normal file
23
assistant_bot/time_utils.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from datetime import datetime, timezone
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
|
||||
def utc_now() -> datetime:
|
||||
return datetime.now(timezone.utc)
|
||||
|
||||
|
||||
def to_utc_iso(value: datetime) -> str:
|
||||
return value.astimezone(timezone.utc).isoformat(timespec="seconds")
|
||||
|
||||
|
||||
def parse_utc_iso(value: str) -> datetime:
|
||||
parsed = datetime.fromisoformat(value)
|
||||
if parsed.tzinfo is None:
|
||||
return parsed.replace(tzinfo=timezone.utc)
|
||||
return parsed.astimezone(timezone.utc)
|
||||
|
||||
|
||||
def format_local_dt(value: str | datetime, tz: ZoneInfo) -> str:
|
||||
parsed = parse_utc_iso(value) if isinstance(value, str) else value
|
||||
return parsed.astimezone(tz).strftime("%Y-%m-%d %H:%M")
|
||||
|
||||
Reference in New Issue
Block a user