aspose file tools*
The moose likes Beginning Java and the fly likes Date Validation !!! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Date Validation !!!" Watch "Date Validation !!!" New topic
Author

Date Validation !!!

Maria Laxmi
Ranch Hand

Joined: Aug 08, 2008
Posts: 40
Hi,

I am using parse function for date validation to parse the valid format of the date "mm-dd-yyyy". Now if I give the input date is "04-31-2008", which is a valid format but invalid date for the April month as we don't have 31st in April, parse function throws an exception but I want to catch this exception before It parses the date.In short I want to separate this two validation for Invalid Format and Invalid date. And I am unable to figure out how can I do this?

Thanks,
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19718
    
  20

Use a DateFormat with setLenient(false) called on it.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39390
    
  28
How about a regular expression to validate the format?
Maria Laxmi
Ranch Hand

Joined: Aug 08, 2008
Posts: 40
I tried setLenient(false), but it is not working.

Thanks,
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39390
    
  28
Throwing an Exception from 04-31-2009 for 31st April 2009 would appear to be "working correctly."
Maria Laxmi
Ranch Hand

Joined: Aug 08, 2008
Posts: 40
I know its working with parse function, but I want to catch this before date gets parsed.

e.g. my code is
DateFormat dateformat = new SimpleDateFormat(mm-dd-yyyy)
dateFormat.setLenient(false)
dateFormat.parse(dateStr)

parse function validates this exception of not allowing 04-31-2009, but I want to catch it before calling the parse function. I am not sure it is possible or not

Thanks,

Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18648
    
    8

nis bootwala wrote:I know its working with parse function, but I want to catch this before date gets parsed.


Why? The purpose of the parse() method is to convert a String to a Date, and to throw an exception if that can't be done.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19718
    
  20

You can use another form of parse that will not throw an exception:

I have used this myself to make sure that there is no "clutter" after the valid string, e.g. "04-30-2009abc":
pos.getIndex() is guaranteed to not change if there is an error, so in this case it will remain 0.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Date Validation !!!