adwsystems:
Which brings me to a sentence that Robin2 mentioned... discards the outcomes that are not sensible.
Thoughts on how to detect this?
You seem to have missed the start of my sentence "you will need very extensive (and complex) code"
The point I was trying to make is "don't go there"
If you don't like @Sterretje's suggestion in Reply #4 then you can use the idea floated by @PaulS in Reply #6 for the same purpose. Assuming (for example) that if there is a / in the data it will always be a date then just check first if the data contains a /. If it does then you know you have a date. If you check for a colon and find one then you know you have a time. etc etc etc
...R