На самом деле это поведение по умолчанию для типов Nullable, что без значения они ничего не возвращают:
public class Test {
public static void Main() {
System.DateTime? dt = null;
System.Console.WriteLine("<{0}>", dt.ToString());
dt = System.DateTime.Now;
System.Console.WriteLine("<{0}>", dt.ToString());
}
}
это дает
<>
<2009-09-18 19:16:09>