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();
値がnullになった場合、01/01/0001が表示されます。
.cshtmlを使用している場合、次のように使用できます。
<td>@(item.InvoiceDate==null?"":DateTime.Parse(item.YourDate.ToString()).ToShortDateString())</td>
または、C#でアクションまたはメソッドで短い日付を見つけようとすると
yourDate.GetValueOrDefault().ToShortDateString();
そして、すでに上記でスティーブによって回答されています。
私は自分のプロジェクトで使用したときにこれを共有しました。正常に動作します。ありがとうございました。
試して
if (nullDate.HasValue)
{
nullDate.Value.ToShortDateString();
}
値があるかどうかを確認し、必要な日付を取得します
if (nullDate.HasValue)
{
nullDate.Value.ToShortDateString();
}