我如何将C#中的日期与“;1/0001 12:00:00 AM”)

本文关键字:0001 AM 日期 | 更新日期: 2023-09-27 18:21:35

我正在尝试以下操作:

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

但这给了我一个错误,说我无法将日期与字符串进行比较。我如何检查CreatedDate是否等于"1/1/0001 12:00:00 AM",我想这是默认值?

我如何将C#中的日期与“;1/0001 12:00:00 AM”)

您可以使用DateTime.MinValue,它具有完全相同的值:

if (e.CreatedDate == DateTime.MinValue) 

要检查它是否等于默认值,可以使用默认关键字:

if (e.CreatedDate == default(DateTime))

"1/1/0001 12:00:00 AM"这是string数据类型。因此将其转换为CCD_ 3。

if (e.CreatedDate == Convert.ToDateTime("1/1/0001 12:00:00 AM"))
{
    //--- To Dos
}

但是.NET Framework提供了一种默认的方法来使用进行检查

if (e.CreatedDate.Equals(DateTime.MinValue))

MSDN

使用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.Compare(DateTime,DateTime)函数,它返回一个整数。例如

if (DateTime.Compare(DateTime.MinValue, e.CreatedDate) == 0){
   ...
}

您可以使用DateTime.MinValue:检查默认值

if (e.CreatedDate == DateTime.MinValue) 

也许你需要一个字符串比较,所以你可以像这个一样进行比较

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(e.CreatedDate.ToUniversalTime() == default(DateTime).ToUniversalTime())

您需要将"1/1/0001 12:00:00 AM"放入日期格式,以便在if.中进行比较

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