in elastic_enterprise_search/_utils.py [0:0]
def format_datetime(value):
# type: (datetime) -> str
"""Format a datetime object to RFC 3339"""
# When given a timezone unaware datetime, use local timezone.
if value.tzinfo is None:
value = value.replace(tzinfo=tz.tzlocal())
utcoffset = value.utcoffset()
offset_secs = utcoffset.total_seconds()
# Use 'Z' for UTC, otherwise use '[+-]XX:XX' for tz offset
if offset_secs == 0:
timezone = "Z"
else:
offset_sign = "+" if offset_secs >= 0 else "-"
offset_secs = int(abs(offset_secs))
hours = offset_secs // 3600
minutes = (offset_secs % 3600) // 60
timezone = f"{offset_sign}{hours:02}:{minutes:02}"
return value.strftime("%Y-%m-%dT%H:%M:%S") + timezone