Use TryParse method, see the following example:
using System;
public class Program
{
public static void Main()
{
string dateString = null;
DateTime dt;
Console.WriteLine(DateTime.TryParse(dateString, out dt));
}
}
You should always use TryParse if you allow users to enter date for invalid date, including null and empty string.
My suggestion is use a datepicker or calender control which will always returns a valid date and save you all this hassle.