1. Something like that can be achieved using validators; unfortunately validator won't prevent users from selecting a date outside the range, but it will just give your application to generate a number of messages for dates outside the range. You can drop a vote for range addition here: http://labs.jboss.com/wiki/RichFacesFuture
2. Standard patterns for http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html should be ok, except Era, Seconds & Timezone.