将日期字符串与当前日期进行比较?

Compare date string with current date?

我正在将日期值从 sql 数据 reader 读取到像这样的字符串数据类型变量。

electionPosDate = Convert.ToDateTime(reader["elecPODate"]).ToString("dd/MM/yyyy");

如何在 if 条件下将其与当前系统日期进行比较?

if(electionPosDate==_____?)
{

}

使用 Date 属性 of DateTime,如果你只想检查日期部分,要获取当前日期使用 DateTime.Now,但只检查日期部分使用 DateTime.Now.Date:

DateTime electionPosDate = Convert.ToDateTime(reader["elecPODate"]);   
if(electionPosDate.Date ==DateTime.Now.Date)
{

}

MSDN docs for Date and DateTime.Now

因为electionPosDatestring,不是DateTime,你需要比较一下;

if(electionPosDate == DateTime.Now.ToString("dd/MM/yyyy"))

但更重要的是,我感觉你做的不对。如果 elecPODate 已经 datetime 键入,您可以只使用 SqlDataReader.GetDateTime method 来获取值作为 DateTime。在您的情况下,您正在将 string 解析为 DateTime,然后再次将其转换为 string。这是完全没有必要的。您应该始终选择适合您的数据类型的最佳列类型。

例如,如果此 elecPODate 列是第一列或您的 reader,您可以只使用;

DateTime electionPosDate = reader.GetDateTime(0);

并进行比较;

if(electionPosDate.Date == DateTime.Now.Date)

请阅读:Bad habits to kick : choosing the wrong data type