in the model you define behaviors and set what fields are date fields, like:

public function behaviors(){
return array(
'myTimeStamp'=>array(
//.. this is a behavior that adds current timestamp to a field
'class'=>'application.components.myTimeStamp',
),
'myDateFormat'=>array(
'class'=>'application.components.myDateFormat', //.. says that myDateFormat is in protected/components
'dateColumns'=>array('date_field1','date_field2'), //.. says that date_field1 and date_field2 are field of type date, and need to be converted
),
);
}

in the model you define behaviors and set what fields are date fields, like:

public function behaviors(){
return array(
'myTimeStamp'=>array(
//.. this is a behavior that adds current timestamp to a field
'class'=>'application.components.myTimeStamp',
),
'myDateFormat'=>array(
'class'=>'application.components.myDateFormat', //.. says that myDateFormat is in protected/components
'dateColumns'=>array('date_field1','date_field2'), //.. says that date_field1 and date_field2 are field of type date, and need to be converted
),
);
}

Thanks, but my previous post referenced the proper way to use the validator :-)
As I didn't have an example available, I was trying various different formats, each of which were incorrect and caused fatal errors.

Is there a simple way to validate a date as a string (like examples hereunder), but store it like a timestamp ?

If I use CTypeValidator to validate the date, then I can't save the model with the date like a timestamp.
If I convert the string into a timestamp before to save, I will obtain a "must be an integer" in case of invalid date.