Not easily, or even reliably.
The problem is that if you don;t know where the date is, or even ho0w long it it, then you presumably don't know what format it is in either - and that causes big problems.
The example you give is easy to spot: split the string on a space and check each "word" to see if it Parses as a Date value:
DateTime dt;
string[] words = input.Split(' ');
bool found = false;
foreach (string word in words)
{
if (DateTime.tryParse(word, out dt))
{
found = true;
break;
}
But ... if the date is free form, then what stops the user entering "Hello today's date is 16th of July, 2017!"? And that's hard to find as a date, even with sophisticated checking.
If I was you, I'd redesign the input mechanism to make dates come from pickers, rather than parsing free form text.