DateTime values have different ranges on different DevelopmentPlatforms. To ensure interoperablity two named values are defined:
“DateTime.MinValue” is the earliest value that can be represented;
“DateTime.MaxValue” is the latest value that can be represented.
If the range supported by the DataEncoding is larger that then range supported by a DevelopmentPlatform then decoders shall replace any out of range values by either DateTime.MinValue or DateTime.MaxValue for the DevelopmentPlatform.
If the range supported by the DataEncoding is smaller than the range supported by a DevelopmentPlatform then encoders shall replace any out of range values by either DateTime.MinValue or DateTime.MaxValue for the DataEncoding.
The representation of a DateTime on a DevelopmentPlatform also has a maximum precision. Decoders shall truncate DateTime values that exceed the supported precision. All DevelopmentPlatforms shall support a precision of at least 1ms.
The DataValue built-in type adds additional fields for picoseconds. If a DevelopmentPlatform cannot support the full precision of DateTime values allowed by the DataEncoding then it should expand the size of its internal representation of picoseonds field to preserve the full precision of the DateTime. If it does not do this it shall set the picoseconds to 0.
Concrete examples can be found in 126.96.36.199.