Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Date Validation !!!

 
Maria Laxmi
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 20546
57
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Use a DateFormat with setLenient(false) called on it.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49382
62
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How about a regular expression to validate the format?
 
Maria Laxmi
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I tried setLenient(false), but it is not working.

Thanks,
 
Campbell Ritchie
Sheriff
Pie
Posts: 49382
62
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Throwing an Exception from 04-31-2009 for 31st April 2009 would appear to be "working correctly."
 
Maria Laxmi
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Sheriff
Posts: 21126
32
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 20546
57
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic