24 lines
583 B
Python
24 lines
583 B
Python
"""Utility functions."""
|
|
|
|
import datetime
|
|
|
|
DateOrDateTime = datetime.datetime | datetime.date
|
|
|
|
|
|
def as_date(d: DateOrDateTime) -> datetime.date:
|
|
"""Convert datetime to date."""
|
|
if isinstance(d, datetime.datetime):
|
|
return d.date()
|
|
assert isinstance(d, datetime.date)
|
|
return d
|
|
|
|
|
|
def as_datetime(d: DateOrDateTime) -> datetime.datetime:
|
|
"""Date/time of event."""
|
|
t0 = datetime.datetime.min.time()
|
|
return (
|
|
d
|
|
if isinstance(d, datetime.datetime)
|
|
else datetime.datetime.combine(d, t0).replace(tzinfo=datetime.timezone.utc)
|
|
)
|