I am aware of the standard procedure for displaying a DateTime
in a custom format, like so:
MessageBox.Show(dateSent.ToString(\"dd/MM/yyyy hh:mm:s
Instead of having to manually perform a null check every time, you can write an extension method.
public static string ToStringFormat(this DateTime? dt, string format)
{
if(dt.HasValue)
return dt.Value.ToString(format);
else
return "";
}
And use it like this (with whatever string format you want)
Console.WriteLine(myNullableDateTime.ToStringFormat("dd/MM/yyyy hh:mm:ss"));
You can still use
variableName.Value.ToString(customFormat);
DateTime?
is syntactic sugar for Nullable<DateTime> and that's why it don't have ToString(format)
overload.
However, you can access underlying DateTime
struct using Value
property. But before that use HasValue
to check, if the value exists.
MessageBox.Show(dateSent.HasValue ? dateSent.Value.ToString("dd/MM/yyyy hh:mm:ss") : string.Empty)