Parses 13/4/2012 as:
year: 2012
month: 13
day: 4
Parses 13/4/2012 as:
year: 2012
month: 13
day: 4
Even if you do language and locale-sniffing using n-grams you still have a certainty problem.
In the UK we traditionally use DD/MM/YY format, although since "9/11" the papers have started slipping into MM/DD format, and younger people have followed suit somewhat.
In the UK it's therefore completely crazy to rely on NLP to interpret "6/7/12" which might mean 7th June or 6th July. If you're going to capture it you need to ask the user, so you need both.
I've even have border control ask me about the expiration date of my passport since they couldn't figure out if it was day-month or month-day.
I couldn't tell them either, because it wasn't written explicitly. Later I realised I could deduce it from my birthdate.
People really need to start using yyyy/mm/dd :-)
In Europe, '4th May' is shortened to 4/5.
In the US, 'May 4th' is shortened to 5/4.
Neither is right, wrong or illogical.
I'm from the UK, but have spent a lot of time working with US based clients/colleagues. They only way I've found to avoid confusion and ambiguity is to use YYYY/MM/DD.
I was filling in a web form using Google Translate. It took me several phone calls and about two weeks to sort out the problems caused when Translate back-converted some (but not all) of the dates that I'd entered into the form from DD.MM.YYYY to MM.DD.YYYY before submitting.
/self rage