Как получить короткую дату для получения короткой даты для System Nullable datetime (datetime ?)
для ed 12/31/2013 12:00:00
→ должен возвращать 12/31/2013
.
Я не вижу доступного ToShortDateString
.
Как получить короткую дату для получения короткой даты для System Nullable datetime (datetime ?)
для ed 12/31/2013 12:00:00
→ должен возвращать 12/31/2013
.
Я не вижу доступного ToShortDateString
.
Сначала нужно использовать .Value
(так как это значение равно null).
var shortString = yourDate.Value.ToShortDateString();
Но также проверьте, что yourDate
имеет значение:
if (yourDate.HasValue) {
var shortString = yourDate.Value.ToShortDateString();
}
string.Format("{0:d}", dt);
работает:
DateTime? dt = (DateTime?)DateTime.Now;
string dateToday = string.Format("{0:d}", dt);
Если DateTime?
есть null
, это возвращает пустую строку.
Обратите внимание, что спецификатор "d" не соответствует ToShortDateString
.
Эта функция абсолютно доступна в классе 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, будет выбрано исключение.
Если вы хотите, чтобы у вас было значение для отображения, вы можете использовать GetValueOrDefault()
в сочетании с методом ToShortDateString
, который будет выглядеть следующим образом:
yourDate.GetValueOrDefault().ToShortDateString();
Это будет показано 01/01/0001, если значение оказалось нулевым.
Проверьте, имеет ли значение значение, затем введите требуемую дату
if (nullDate.HasValue)
{
nullDate.Value.ToShortDateString();
}
Попробуйте
if (nullDate.HasValue)
{
nullDate.Value.ToShortDateString();
}
Если вы используете .cshtml, вы можете использовать его как
<td>@(item.InvoiceDate==null?"":DateTime.Parse(item.YourDate.ToString()).ToShortDateString())</td>
или если вы попытаетесь найти короткую дату в действии или методе в С#, тогда
yourDate.GetValueOrDefault().ToShortDateString();
И уже ответил Стив Стив.
Я поделился этим, как я использовал в своем проекте. он отлично работает. Спасибо.