27 lines
665 B
Python
27 lines
665 B
Python
|
|
from datetime import datetime
|
||
|
|
from zoneinfo import ZoneInfo
|
||
|
|
|
||
|
|
ET_TZ = ZoneInfo('America/New_York')
|
||
|
|
UTC_TZ = ZoneInfo('UTC')
|
||
|
|
|
||
|
|
def now_et():
|
||
|
|
return datetime.now(ET_TZ)
|
||
|
|
|
||
|
|
def now_utc():
|
||
|
|
return datetime.now(UTC_TZ)
|
||
|
|
|
||
|
|
def fmt_et(dt: datetime | None = None, with_date: bool = True) -> str:
|
||
|
|
if dt is None:
|
||
|
|
dt = now_et()
|
||
|
|
return dt.strftime('%Y-%m-%d %H:%M:%S' if with_date else '%H:%M:%S')
|
||
|
|
|
||
|
|
def fmt_et_hm(dt: datetime | None = None) -> str:
|
||
|
|
if dt is None:
|
||
|
|
dt = now_et()
|
||
|
|
return dt.strftime('%H:%M:%S')
|
||
|
|
|
||
|
|
def fmt_utc(dt: datetime | None = None) -> str:
|
||
|
|
if dt is None:
|
||
|
|
dt = now_utc()
|
||
|
|
return dt.strftime('%Y-%m-%d %H:%M:%S')
|