Source code for schrodinger.application.job_monitor.util
from datetime import datetime
from dateutil import tz
TIME_DISPLAY_FORMAT = "%I:%M%p"
DATE_DISPLAY_FORMAT = "%d %b %Y"
[docs]def convert_to_local_timezone(utc_epoch_time):
"""
Return the local timezone datetime object for the UTC
epoch time.
:param utc_epoch_time: UTC epoch time
:type utc_epoch_time: float
:rtype: datetime.datetime
"""
utc_datetime_string = datetime.fromtimestamp(utc_epoch_time).strftime(
f'{TIME_DISPLAY_FORMAT} {DATE_DISPLAY_FORMAT}')
utc_datetime = datetime.strptime(
utc_datetime_string, f'{TIME_DISPLAY_FORMAT} {DATE_DISPLAY_FORMAT}')
utc_timezone = tz.tzutc()
# Let the datetime object know it's UTC time
utc_datetime = utc_datetime.replace(tzinfo=utc_timezone)
local_timezone = tz.tzlocal()
# Convert the UTC datetime object to local datetime object
local_datetime = utc_datetime.astimezone(local_timezone)
return local_datetime
[docs]def is_same_day(local_datetime):
"""
Check whether the local datetime is of the the current day.
:type local_datetime: datetime.datetime
:rtype: bool
"""
return local_datetime.date() == datetime.today().date()
[docs]def get_current_utc_timestamp():
"""
Return the UTC current epoch time.
:rtype: float
"""
return datetime.utcnow().timestamp()