web-dev-qa-db-fra.com

Obtenir une date courte pour la date et la date système Nullable avec System en dat

Comment faire pour obtenir une date courte pour Obtenir une date courte pour System Nullable datetime (datetime ?)

pour ed 12/31/2013 12:00:00 -> seulement devrait renvoyer 12/31/2013.

Je ne vois pas la ToShortDateString disponible.

38
user2811143

Vous devez d'abord utiliser .Value (puisqu'il est nullable).

var shortString = yourDate.Value.ToShortDateString();

Mais vérifiez aussi que yourDate a une valeur:

if (yourDate.HasValue) {
   var shortString = yourDate.Value.ToShortDateString();
}
89
Darren

string.Format("{0:d}", dt); fonctionne:

DateTime? dt = (DateTime?)DateTime.Now;
string dateToday = string.Format("{0:d}", dt);

Démo

Si le DateTime? est null, cela retourne une chaîne vide.

Notez que le spécificateur de format personnalisé "d" est identique à ToShortDateString .

15
Rango

Cette fonction est absolument disponible dans la classe DateTime. Veuillez vous reporter à la documentation MSDN de la classe: http://msdn.Microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx

Puisque Nullable est un générique au-dessus de la classe DateTime, vous devrez utiliser la propriété .Value de l'instance DateTime? pour appeler les méthodes de classe sous-jacentes, comme indiqué ci-dessous:

DateTime? date;
String shortDateString;
shortDateString = date.Value.ToShortDateString();

Sachez simplement que si vous tentez cette opération alors que date est null, une exception sera levée.

6
JNYRanger

Si vous voulez avoir la certitude d'avoir une valeur à afficher, vous pouvez utiliser GetValueOrDefault() conjointement avec la méthode ToShortDateString qui ressemble à ceci postel like

yourDate.GetValueOrDefault().ToShortDateString();

Cela affichera 01/01/0001 si la valeur est nulle.

4
Steve Danner

Si vous utilisez .cshtml, vous pouvez utiliser comme 

<td>@(item.InvoiceDate==null?"":DateTime.Parse(item.YourDate.ToString()).ToShortDateString())</td>

ou si vous essayez de trouver une date courte en action ou en méthode en c #, puis

yourDate.GetValueOrDefault().ToShortDateString();

Et est déjà répondu ci-dessus par Steve.

J'ai partagé cela comme je l'ai utilisé dans mon projet. ça fonctionne bien. Je vous remercie.

0
Er. Binod Mehta

Essayer 

    if (nullDate.HasValue)
    {
         nullDate.Value.ToShortDateString();
    }
0
user6721009

Vérifiez si elle a de la valeur, puis obtenez la date requise

if (nullDate.HasValue)
{
     nullDate.Value.ToShortDateString();
}
0
Muhammad Umar