I'd start by looking at exactly what string you are passing to TryParseExact in dateString, and checking it's format manually. But...it will fail, whatever you pass.
You aren't using either of your formats that include minutes, but you do append the minutes (and a colon) to the date you collect - and then try to parse it using a format that has no minutes or colon:
DateTime.TryParseExact(dateString, "d/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
So...it will fail. But you don't check the return bool value, so you can't tell if it did or not. When it fails, it just leaves dateTime at the default, minimum, value.
[edit]Minor typos[/edit]