Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用比较运算符在Java中比较日期?_Java_Date_Comparison_Boolean Expression_Comparison Operators - Fatal编程技术网

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

如何使用比较运算符在Java中比较日期?,java,date,comparison,boolean-expression,comparison-operators,Java,Date,Comparison,Boolean Expression,Comparison Operators,如何使用比较运算符在Java中比较日期 例如: 日期1为2017年10月30日 日期2为2017年10月31日 日期3为2018年10月30日 当date2小于date3时应为true,则date2返回false。如果日期小于另一个日期,我如何返回true,否则返回false 这是我的代码: 返回日

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

例如:

日期1为2017年10月30日 日期2为2017年10月31日 日期3为2018年10月30日

当date2小于date3时应为true,则date2返回false。如果日期小于另一个日期,我如何返回true,否则返回false

这是我的代码: 返回日<日期.日|月<日期.月|年<日期.年

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

{
  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;
}

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

因此,您应该能够对逻辑日期1您应该使用布尔afterDate日期或布尔beforeDate日期。 例如,date2.beforedate3

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

比较第一年、第二个月、第二天:从最显著到最不显著 因此,表示日期和时间的ISO标准为2017-09-30T13:05:01000,其中文本比较与相同长度的表示就足够了。 模式是这样的:

如果年数不相等,则发现结果 如果月份不相等,则找到结果 结果是天数的比较
我认为java不接受日期上的比较运算符。但是您可以将LocalDateAPI与isBefore和isAfter方法一起使用?完全限定是java.util.Date,还是java.time.LocalDate或其他?我正在比较为日期对象设置的数值。我使用的字段是日、月和年的整数。所以我试着检查这些值。@julianrios我不明白你想说什么。这是我的java入门课程的作业。所以我有点迷路了。我正在用bluej编写代码,我认为我无法访问此作业的api。对不起,我不明白。@julianrios日期使用什么类?有没有办法插入我所有的代码?查看我的字段和方法中的内容可能会更容易。@julianrios您可以在问题下方按“编辑”按钮并添加一些内容
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));