我正在尝试以下方法:
if (e.CreatedDate == "1/1/0001 12:00:00 AM")
但这给了我一个错误,说我无法将日期与字符串进行比较。我怎么能这样做,所以我检查CreatedDate是否等于“1/1/0001 12:00:00 AM”,这是我猜的默认值?
答案 0 :(得分:80)
您可以使用具有完全相同值的DateTime.MinValue
:
if (e.CreatedDate == DateTime.MinValue)
答案 1 :(得分:8)
“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))
答案 2 :(得分:7)
要检查它是否等于默认值,您可以使用default关键字:
if (e.CreatedDate == default(DateTime))
答案 3 :(得分:5)
使用DateTime.MinValue
if (e.CreatedDate.Equals(DateTime.MinValue))
答案 4 :(得分:4)
我假设e.CreateDate的类型为DateTime。
尝试如下:
if (e.CreatedDate == DateTime.Parse("1/1/0001 12:00:00 AM"))
如果您的目标是比较它是否等于最小日期,那么只需将它与DateTime.MinValue进行比较。上面的例子更通用。
答案 5 :(得分:3)
您可以使用DateTime.MinValue
检查默认值:
if (e.CreatedDate == DateTime.MinValue)
答案 6 :(得分:3)
您应该使用DateTime.Compare(DateTime,DateTime)函数,该函数返回一个整数。 例如
if (DateTime.Compare(DateTime.MinValue, e.CreatedDate) == 0){
...
}
答案 7 :(得分:1)
也许你需要一个字符串比较,所以你可以这样做
e.CreatedDate.ToString(FORMAT)=="1/1/0001 12:00:00 AM"
答案 8 :(得分:1)
此条件不适用于Lambda:(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
});
答案 9 :(得分:0)
如果日期类型不同,则比较可能不起作用。确保种类匹配:
if(e.CreatedDate.ToUniversalTime() == default(DateTime).ToUniversalTime())
答案 10 :(得分:-2)
您需要将“1/1/0001 12:00:00 AM”置于日期格式中,以便在if中进行比较。
if(e.CreatedDate == ((Date)"1/1/0001 12:00:00 AM"))