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