@@ -75,6 +75,7 @@ def value(self) -> bytes:
7575 raise MessageError ("Unable to return value. Deserialize data first" )
7676 return self ._value
7777
78+
7879class String (BaseType ):
7980 """String based property."""
8081
@@ -168,8 +169,11 @@ def __init__(self, value: datetime | None, length: int = 8) -> None:
168169
169170 def serialize (self ) -> bytes :
170171 """Return current string formatted value into an iterable list of bytes."""
172+ if not isinstance (self ._raw_value , datetime ):
173+ raise MessageError ("Unable to serialize. Value is not a datetime object" )
171174 fmt = "%%0%dX" % self .length
172- return bytes (fmt % self ._raw_value , UTF8 )
175+ date_in_float = self ._raw_value .timestamp ()
176+ return bytes (fmt % int (date_in_float ), UTF8 )
173177
174178 def deserialize (self , val : bytes ) -> None :
175179 """Convert data into datetime based on Unix timestamp format."""
@@ -237,7 +241,7 @@ def value_set(self) -> bool:
237241 """True when datetime is converted."""
238242 if not self ._deserialized :
239243 raise MessageError ("Unable to return value. Deserialize data first" )
240- return ( self ._value is not None )
244+ return self ._value is not None
241245
242246 @property
243247 def value (self ) -> datetime :
0 commit comments