Java, date from string without pattern

I need to get a Date instance from input file. I don't know the date format, but I want to get it from user profile settings.

Te following code does not working:

DateFormat form = DateFormat.getDa​teInstance(DateF​ormat.SHORT, Locale.getDefaul​t());

try { 
    Date t = form.parse("6/6/2015");
}

unparseable date error

I want to know if there is any way to get date from string without knowing the date string pattern.

I need this date to create MySQL query. Maybe there is another way to build this query without parsing date? I am using Entity Beans.

Jon Skeet
people
quotationmark

I want to know if there is any way to get data from string without knowing the data string pattern.

Without any more information, this is very error prone. For example, consider "7/6/2015" - does that mean June 7th, or July 6th?

If you know the user's locale, you can do a lot better - for example, you could obtain DateFormat instances for long, medium, short and full date patterns for that locale, and try them one at a time. Bear in mind, however, that depending on where this code is executing, the default locale (as you're using at the moment) may not be the user's locale. You mention the user profile settings - hopefully that already contains a locale.

One alternative is to ask the user to tell you what the format is - maybe provide lots of different examples, and let them pick the one that matches.

Finally, if the file has lots of dates in and you're confident they'll all be in the same format, you could try to parse all of them in each of several different formats - that's likely to reduce the chances of error, as "7/6/2015" becomes unambigious if you've also seen "13/1/2015" for example.

people

See more on this question at Stackoverflow