【问题标题】:How to compare dates in Java using comparison operators?如何使用比较运算符比较 Java 中的日期?
【发布时间】:2018-03-19 07:27:01
【问题描述】:

如何使用比较运算符比较 Java 中的日期?

例子:

date1 是30-10-2017
date2 是 31-10-2017
date3 是30-10-2018

date2 在小于date3 应该为真时返回假。如果日期小于另一个日期,如何返回 true,否则返回 false?

这是我的代码:
return (day < theDate.day) || (month < theDate.month) || (year < theDate.year);

以下是我目前的解决方案:

{
  boolean check = false;
  if(year < theDate.year)
  {
      return true;
  }
  if(year > theDate.year)
  {
      return false;
  }
  if(month < theDate.month)
  {
      check = true;
  }
  if(day < theDate.day)
  {
      check = true;
  }
  else
  {
      return false;
  }
  return check;
}

【问题讨论】:

  • 我认为 java 不接受日期上的比较运算符。但您可以将LocalDate API 与isBeforeisAfter 方法一起使用。
  • 你的日期类是什么类型的? (完全合格)是java.util.Date,还是java.time.LocalDate或别的什么?

标签: java date comparison boolean-expression comparison-operators


【解决方案1】:

您不能直接使用关系运算符,但日期/时间类型通常实现Comparable

所以你应该能够为逻辑date1 &lt; date2 执行date1.compareTo(date2) &lt; 0

【讨论】:

  • 我正在比较我为日期对象设置的数值。我使用的字段是表示日、月和年的整数。所以我正在尝试检查这些值。
  • @julianrios 我不明白你想说什么。
  • 这是我的 java 类介绍的作业。所以我有点迷路了。我正在使用 bluej 进行编码,但我不相信我可以访问该作业的 api。
【解决方案2】:

您应该为此使用boolean after(Date date)boolean before(Date date)。 例如date2.before(date3)

【讨论】:

  • 对不起,我不明白。
  • @julianrios 你用什么类来约会?
  • 有没有办法插入我所有的代码?只看我的领域和方法可能更容易。
  • @julianrios 你可以在你的问题下推“编辑”并添加一些东西
【解决方案3】:
LocalDate date1 = LocalDate.of(2017, 10, 30); // Year, month, day.
LocalDate date2 = LocalDate.of(2017, 10, 31);
LocalDate date3 = LocalDate.of(2018, 10, 30);

System.out.printf("%s before %s? %s%n", date1, date2, date1.isBefore(date2));
System.out.printf("%s before %s? %s%n", date2, date3, date3.isBefore(date3));
System.out.printf("%s before %s? %s%n", date3, date1, date3.isBefore(date1));

如果您想知道如何自己进行比较:

  • 比较第一年,然后是月份,然后是日期:从最重要最不重要
  • 因此,表示日期(和时间)的 ISO 标准是 2017-09-30T13:05:01,000,其中与相同长度的表示进行文本比较就足够了。

模式是这样的:

  1. 如果年份不相等,则找到结果
  2. 如果月份不相等,则找到结果
  3. 结果是天数比较

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2023-03-26
    • 1970-01-01
    • 2012-10-05
    • 2017-03-28
    • 2020-03-14
    相关资源
    最近更新 更多