如何获取System Nullable datetime (datetime ?)
for ed 12/31/2013 12:00:00
- >只应返回12/31/2013
。
我没有看到ToShortDateString
可用。
答案 0 :(得分:93)
您需要先使用.Value
(因为它可以为空)。
var shortString = yourDate.Value.ToShortDateString();
但是还要检查yourDate
是否有值:
if (yourDate.HasValue) {
var shortString = yourDate.Value.ToShortDateString();
}
答案 1 :(得分:15)
string.Format("{0:d}", dt);
有效:
DateTime? dt = (DateTime?)DateTime.Now;
string dateToday = string.Format("{0:d}", dt);
如果DateTime?
为null
,则返回空字符串。
答案 2 :(得分:6)
该功能在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
为空时尝试此操作,则会抛出异常。
答案 3 :(得分:5)
如果您希望保证显示值,可以将GetValueOrDefault()
与其他类似的ToShortDateString
方法结合使用:
yourDate.GetValueOrDefault().ToShortDateString();
如果值恰好为null,则显示01/01/0001。
答案 4 :(得分:0)
检查它是否有价值,然后获得所需的日期
if (nullDate.HasValue)
{
nullDate.Value.ToShortDateString();
}
答案 5 :(得分:0)
如果您使用.cshtml,则可以使用
<td>@(item.InvoiceDate==null?"":DateTime.Parse(item.YourDate.ToString()).ToShortDateString())</td>
或者如果您尝试在c#中找到行动或方法中的短日期,那么
yourDate.GetValueOrDefault().ToShortDateString();
史蒂夫已在上面回答。
我已经在我的项目中使用了这个。它工作正常。谢谢。