Source code for harp.utils.dates
from datetime import date, datetime
from typing import Optional
[docs]
def ensure_date(x) -> Optional[date]:
if x is None:
return None
if isinstance(x, datetime):
return x.date()
if isinstance(x, date):
return x
return datetime.strptime(x, "%Y-%m-%d").date()
[docs]
def ensure_datetime(x, tz=None) -> Optional[datetime]:
if x is None:
return None
if isinstance(x, datetime):
return x.replace(tzinfo=tz)
if isinstance(x, date):
return datetime.combine(x, datetime.min.time(), tzinfo=tz)
try:
return datetime.strptime(x, "%Y-%m-%d %H:%M:%S").replace(tzinfo=tz)
except ValueError:
return datetime.strptime(x, "%Y-%m-%d %H:%M:%S.%f").replace(tzinfo=tz)