I guess, your idea was to not use optimized encoding, right?
But that would have meant to serialize an extra DateAndTime object. So I hacked together this quick fix (see attachment) that simply encodes another int32 on the stream with the offset. The materialization method took care of creating a new DateAndTime object anyway.

With the fix, the Date tests pass.

Cheers,
Max