如何在c#中比较日期



我有两个日期。一个日期被输入,另一个是DateTime.Now。我有mm/dd/yyyy格式的,甚至可以是m/d/yy格式。两个日期都可以为null,即数据类型为DateTime?,因为我也可以将null作为输入传递。现在我只想用mm/dd/yyyym/d/yy格式来比较这两个日期。

如果日期是DateTime变量,那么它们就没有格式。

可以使用Date属性返回DateTime值,其中时间部分设置为午夜。所以,如果你有:

DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;
if(dt1.Date > dt2.Date)
{
     //It's a later date
}
else
{
     //It's an earlier or equal date
}

如果DateTime变量中有日期,则它是DateTime对象,不包含任何格式。当您调用DateTime.ToString方法并在其中提供格式时,格式化日期表示为string

假设你有两个DateTime变量,你可以使用比较方法进行比较,

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
   relationship = "is earlier than";
else if (result == 0)
   relationship = "is the same time as";         
else
   relationship = "is later than";

取自msdn的代码段。

首先,了解DateTime对象没有格式化。它们只是将年、月、日、小时、分钟、秒等存储为一个数值,当您想以某种方式将其表示为字符串时,就会进行格式化。您可以比较DateTime对象,而无需对其进行格式化。

要将输入日期与DateTime.Now进行比较,您需要首先将输入解析为日期,然后仅比较年/月/日部分:

DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
    throw new ArgumentException("Input string not in the correct format.");
if(inputDate.Date == DateTime.Now.Date) {
    // Same date!
}

相关内容

  • 没有找到相关文章

最新更新