我如何将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",我想这是默认值?
您可以使用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"))