As you can read from the documentation "date", the constraint dates performs validation only format "YYYY-MM-DD".
So you have two choices:
one (the simplest and most logical) is to set the format manually in the form field "format":
$builder->add('date', 'date', array(
'widget' => 'single_text',
'format' => 'dd-MM-yyyy',
));
in this way will be the form itself to reverse the date and pass the correct format to the validator (and the database).
The other is to create a constraint callback "callback", and creating your own logic for validation.
There would also be another way, even if it is inserted in the bonds of strings, and it is the constraint regex "regex".
In this way you will need to create a regular expression very precise (and complex).
For a problem as simple as the first solution is the most suitable!
EDIT:
jquery ui datepicker locks to an input type text, you do not need to create it manually.
As I wrote in the example, if you use the 'widget' => 'single_text' will produce an input type text!
You can set up a class to the date field in order to hook into that with jquery.
A short example:
form:
$builder->add('date', 'date', array(
'widget' => 'single_text',
'format' => 'dd-MM-yyyy',
'attr' => array(
'class' => 'your_class'),
));
javascript:
$(function() {
$( ".your_class" ).datepicker();
});