8.6. Validating Dates
Problem
You want to validate a calendar date and time field by specifying a specific format pattern.
Solution
Use the Validator's
date
rule to specify the expected pattern that the date must match. Example 8-8 shows some different ways of using this rule.
Example 8-8. Using the Validator's date rule
<field property="date1" depends="date">
<arg key="Date1" resource="false"/>
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
<field property="date2" depends="date">
<arg key="Date2" resource="false"/>
<var>
<var-name>datePatternStrict</var-name>
<var-value>MM/dd/yyyy</var-value>
</var>
</field>
<field property="dateTime" depends="date">
<arg key="DateTime" resource="false"/>
<var>
<var-name>datePattern</var-name>
<var-value>MM/dd/yy HH:mm</var-value>
</var>
</field>Discussion
Calendar dates have got to be one of the hardest field types to work with in a web application. The developer wants to ensure that only valid data gets into the system, but the users want to be able to enter the date in various formats. The Validator helps mitigate these conflicting desires by providing a robust rule for validating dates and times.
The
date rule uses a
Validator variable (var) to specify the pattern
that a property value must match. The datePattern
variable specifies the pattern for formatting the value using the
java.text.SimpleDateFormat class. If
SimpleDateFormat can format the value into a date, then the validation passes; otherwise, the ...