Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.1.0, 2.1.0 RC1
-
None
-
None
-
None
Description
Current DateField.validate() is too strict.
My suggestion is:
Add two properties:
1) String prop similarDelimiters:
its format: [oldChar1][newChar1] [oldChar2][newChar2].... if odd then ignore last char.
2) boolean prop lenientValidation //def false
3) Modify setValue (not tested):
public void setValue(String value) {
if (value != null && value.length() > 0) {
value = value.trim();
if (similarDelimiters != null && similarDelimiters.length > 0) {
for (int i=0; i<similarDelimiters.length-1; i+=2)
//f
}//i
try
{ Date parsedDate = getDateFormat().parse(value); // Cache date for subsequent retrievals date = new Date(parsedDate.getTime()); }catch (ParseException pe)
{ date = null; }} else
{ date = null; } super.setValue(value);
}//setValue
Because people in Russia use different characters (ex: /,-, .(dot)) as date delimiters, not one.
So I will set similarDelimiters to "-/
/./" and pattern to dd/MM/yyyy - and it will work.
4) Modify validate()
dateFormat.setLenient(lenientValidation);