validate validar fechas convertir asignar c# datetime

validar - set datetime null c#



C#Nullable<DateTime> a cadena (10)

Al llamar a .ToString() en un Nullable<T> que es null se devolverá una cadena vacía.

Tengo un DateTime? variable, a veces el valor es null , ¿cómo puedo devolver una cadena vacía "" cuando el valor es null o el valor DateTime cuando no es null ?


Aunque muchas de estas respuestas son correctas, todas son innecesariamente complejas. El resultado de llamar a ToString en un DateTime anulable ya es una cadena vacía si el valor es lógicamente nulo. Simplemente llame a ToString en su valor; Hará exactamente lo que quieras.


En realidad, este es el comportamiento predeterminado para los tipos de Nullable, que sin un valor no devuelven nada:

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()); } }

esto rinde

<> <2009-09-18 19:16:09>


Podrías escribir un método de extensión.

public static string ToStringSafe(this DateTime? t) { return t.HasValue ? t.Value.ToString() : String.Empty; } ... var str = myVariable.ToStringSafe();


Todo lo que necesitas hacer es simplemente llamar a .ToString() . Maneja el Nullable<T> para el valor null .

Aquí está la fuente de .NET Framework para Nullable<T>.ToString() :

public override string ToString() { return hasValue ? value.ToString() : ""; }


DateTime d?; string s = d.HasValue ? d.ToString() : string.Empty;


DateTime? MyNullableDT; .... if (MyNullableDT.HasValue) { return MyNullableDT.Value.ToString(); } return "";


DateTime? d; // stuff manipulating d; return d != null ? d.Value.ToString() : String.Empty;


if (aDate.HasValue) return aDate; else return string.Empty;


string date = myVariable.HasValue ? myVariable.Value.ToString() : string.Empty;