DateTimevalues 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 DataEncodingis larger that then range supported by a DevelopmentPlatformthen decoders shall replace any out of range values by either DateTime.MinValue or DateTime.MaxValue for the DevelopmentPlatform.

If the range supported by the DataEncodingis smaller than the range supported by a DevelopmentPlatformthen encoders shall replace any out of range values by either DateTime.MinValue or DateTime.MaxValue for the DataEncoding.

The representation of a DateTimeon a DevelopmentPlatform also has a maximum precision. Decodersshall truncate DateTimevalues that exceed the supported precision. All DevelopmentPlatforms shall support a precision of at least 1ms.

The DataValuebuilt-in type adds additional fields for picoseconds. If a DevelopmentPlatform cannot support the full precision of DateTimevalues allowed by the DataEncodingthen 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 5.2.2.5.