Source code for highton.fields.datetime_field
import datetime
from xml.etree import ElementTree
from highton.fields.field import Field
from highton.fields.field_constants import FieldConstants
[docs]class DatetimeField(Field):
DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'
[docs] def encode(self):
"""
:return: the encoded element
:rtype: xml.etree.ElementTree.Element
"""
element = ElementTree.Element(
self.name,
attrib={
'type': FieldConstants.DATETIME
},
)
element = self._set_nil(element, lambda value: value.strftime(self.DATETIME_FORMAT))
return element
[docs] def decode(self, element):
"""
:param element: the element which needs to be parsed
:type element: xml.etree.ElementTree.Element
:return: the parsed datetime object
:rtype: datetime.datetime
"""
if element.text:
return datetime.datetime.strptime(element.text, self.DATETIME_FORMAT)
else:
return None