比较日期字符串和当前日期?

时间:2015-01-26 09:07:48

标签: c# string datetime comparison

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

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

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

if(electionPosDate==_____?)
{

}

2 个答案:

答案 0 :(得分:7)

由于electionPosDatestring,而不是DateTime,您需要比较它;

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

但更重要的是,我觉得你做错了什么。如果elecPODate已经 datetime输入,您只需使用SqlDataReader.GetDateTime method即可将值DateTime。在您的情况下,您正在将string解析为DateTime,然后再将其转换为string。这完全没必要。您应该始终选择适合您的数据类型的最佳列类型。

例如,如果此elecPODate列是第一列或您的读者,则可以使用;

DateTime electionPosDate = reader.GetDateTime(0);

并将其比作;

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

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

答案 1 :(得分:5)

使用Date的{​​{1}}属性,如果您只想查看日期部分,并使用DateTime获取当前日期,但仅限日期部分使用DateTime.Now

DateTime.Now.Date

请参阅MSDN docs for DateDateTime.Now