Here is simplest piece of code
Dim testInvoiceDate As DateTime? = If(String.IsNullOrEmpty(Nothing),
Nothing,
Nothing in VB.Net is the equivalent of default(T) in C#: the default value for the given type.
0 for Integer, False for Boolean, DateTime.MinValue for DateTime, ... null value (a reference that refers to, well, nothing).Asigning Nothing to a DateTime therefore is the same as assigning it DateTime.MinValue