私は次のことを試みています:
if (e.CreatedDate == "1/1/0001 12:00:00 AM")
しかし、これにより、日付を文字列と比較できないというエラーが表示されます。CreatedDate が「1/1/0001 12:00:00 AM」と等しいことを確認するにはどうすればよいですか。これはデフォルトだと思いますか?
私は次のことを試みています:
if (e.CreatedDate == "1/1/0001 12:00:00 AM")
しかし、これにより、日付を文字列と比較できないというエラーが表示されます。CreatedDate が「1/1/0001 12:00:00 AM」と等しいことを確認するにはどうすればよいですか。これはデフォルトだと思いますか?
"1/1/0001 12:00:00 AM" これはstring
データ型です。に変換しDateTime
ます。
if (e.CreatedDate == Convert.ToDateTime("1/1/0001 12:00:00 AM"))
{
//--- To Dos
}
ただし、.NET Framework は、これをチェックするデフォルトの方法を提供します。
if (e.CreatedDate.Equals(DateTime.MinValue))
DateTime.MinValue を使用する
if (e.CreatedDate.Equals(DateTime.MinValue))
e.CreateDate は DateTime 型であると仮定します。
次のように試してください:
if (e.CreatedDate == DateTime.Parse("1/1/0001 12:00:00 AM"))
最小日付と等しいかどうかを比較する場合は、それを DateTime.MinValue と比較してください。上記の例はより一般的です。
デフォルト値は次の方法で確認できますDateTime.MinValue
。
if (e.CreatedDate == DateTime.MinValue)
整数を返す DateTime.Compare(DateTime, DateTime) 関数を使用する必要があります。例えば。
if (DateTime.Compare(DateTime.MinValue, e.CreatedDate) == 0){
...
}
たぶん、文字列の比較が必要なので、このようにすることができます
e.CreatedDate.ToString(FORMAT)=="1/1/0001 12:00:00 AM"
この条件は Lambdas: では機能しません(e.CreatedDate == DateTime.MinValue)
。例えば、
dbset.Select(e => new
{
Date = e.CreatedDate == DateTime.MinValue ? DateTime.UtcNow : e.CreatedDate
});
したがって、次のdefault
キーワードを使用する必要がありました。
dbset.Select(e => new
{
Date = e.CreatedDate == default(DateTime) ? DateTime.UtcNow : e.CreatedDate
});
if で比較するには、「1/1/0001 12:00:00 AM」を日付形式に入れる必要があります。
if(e.CreatedDate == ((Date)"1/1/0001 12:00:00 AM"))