49

私は次のことを試みています:

if (e.CreatedDate == "1/1/0001 12:00:00 AM") 

しかし、これにより、日付を文字列と比較できないというエラーが表示されます。CreatedDate が「1/1/0001 12:00:00 AM」と等しいことを確認するにはどうすればよいですか。これはデフォルトだと思いますか?

4

11 に答える 11

10

"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))

MSDN

于 2013-07-09T13:28:21.310 に答える
7

DateTime.MinValue を使用する

if (e.CreatedDate.Equals(DateTime.MinValue))
于 2013-07-09T13:28:34.927 に答える
4

e.CreateDate は DateTime 型であると仮定します。

次のように試してください:

if (e.CreatedDate == DateTime.Parse("1/1/0001 12:00:00 AM"))

最小日付と等しいかどうかを比較する場合は、それを DateTime.MinValue と比較してください。上記の例はより一般的です。

于 2013-07-09T13:30:55.067 に答える
3

デフォルト値は次の方法で確認できますDateTime.MinValue

if (e.CreatedDate == DateTime.MinValue) 
于 2013-07-09T13:28:45.633 に答える
3

整数を返す DateTime.Compare(DateTime, DateTime) 関数を使用する必要があります。例えば。

if (DateTime.Compare(DateTime.MinValue, e.CreatedDate) == 0){
   ...
}
于 2013-07-09T13:29:24.813 に答える
1

たぶん、文字列の比較が必要なので、このようにすることができます

e.CreatedDate.ToString(FORMAT)=="1/1/0001 12:00:00 AM"
于 2013-07-09T13:43:32.217 に答える
1

この条件は 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 
}); 
于 2020-06-06T15:55:54.710 に答える
-3

if で比較するには、「1/1/0001 12:00:00 AM」を日付形式に入れる必要があります。

if(e.CreatedDate == ((Date)"1/1/0001 12:00:00 AM"))
于 2013-07-09T13:31:35.460 に答える