Подтвердить что ты не робот

Получить короткую дату для System Nullable datetime (datetime?) В С#

Как получить короткую дату для получения короткой даты для System Nullable datetime (datetime ?)

для ed 12/31/2013 12:00:00 → должен возвращать 12/31/2013.

Я не вижу доступного ToShortDateString.

4b9b3361

Ответ 1

Сначала нужно использовать .Value (так как это значение равно null).

var shortString = yourDate.Value.ToShortDateString();

Но также проверьте, что yourDate имеет значение:

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

Ответ 2

string.Format("{0:d}", dt); работает:

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

Демо

Если DateTime? есть null, это возвращает пустую строку.

Обратите внимание, что спецификатор "d" не соответствует ToShortDateString.

Ответ 3

Эта функция абсолютно доступна в классе DateTime. Пожалуйста, обратитесь к документации MSDN для класса: http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring.aspx

Так как Nullable является общим в классе DateTime, вам нужно будет использовать свойство .Value экземпляра DateTime? для вызова методов базового класса, как показано ниже:

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

Просто имейте в виду, что если вы попытаетесь сделать это, пока date имеет значение null, будет выбрано исключение.

Ответ 4

Если вы хотите, чтобы у вас было значение для отображения, вы можете использовать GetValueOrDefault() в сочетании с методом ToShortDateString, который будет выглядеть следующим образом:

yourDate.GetValueOrDefault().ToShortDateString();

Это будет показано 01/01/0001, если значение оказалось нулевым.

Ответ 5

Проверьте, имеет ли значение значение, затем введите требуемую дату

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

Ответ 6

Попробуйте

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

Ответ 7

Если вы используете .cshtml, вы можете использовать его как

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

или если вы попытаетесь найти короткую дату в действии или методе в С#, тогда

yourDate.GetValueOrDefault().ToShortDateString();

И уже ответил Стив Стив.

Я поделился этим, как я использовал в своем проекте. он отлично работает. Спасибо.