There's not much difference, you can even see the difference if you decompile the source/lookup the C# reference source online.
The main difference is that is coalesces a null
input to a new DateTime(0)
(i.e. DateTime.MinValue
) which feels a bit wonky to me.
Apart from that the only other difference is that you can't pass DateTimeStyles
like you can with DateTime.Parse
/ DateTime.TryParse
so the resulting DateTime
will always represent the date in Local time rather than Utc.