Prepping a field's value from a fieldtype before it hits Craft\BaseModel->__set()
I can see how this is unexpected behavior. The code in BaseElementModel::setContentFromPost() isn’t considering that the ContentModel it’s setting data to is going to be doing its own manipulation of the data before the field type has had a chance to tweak it (thanks to setAttribute()). And in AttributeType::DateTime’s case, that means trying to convert the value to a DateTime object, else completely discarding the value.

Anyway, I’ll tweak this for the next release. Shouldn’t have any negative side effects if we just hold off on assigning the value to the ContentModel until after the field type’s prepValueFromPost() has had a chance to do its thing.