netbox/netbox/utilities/datetime.py
2024-07-16 12:21:50 -04:00

29 lines
751 B
Python

import datetime
from django.utils import timezone
from django.utils.timezone import localtime
__all__ = (
'datetime_from_timestamp',
'local_now',
)
def local_now():
"""
Return the current date & time in the system timezone.
"""
return localtime(timezone.now())
def datetime_from_timestamp(value):
"""
Convert an ISO 8601 or RFC 3339 timestamp to a datetime object.
"""
# Work around UTC issue for Python < 3.11; see
# https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat
# TODO: Remove this once Python 3.10 is no longer supported
if type(value) is str and value.endswith('Z'):
value = f'{value[:-1]}+00:00'
return datetime.datetime.fromisoformat(value)