将 SimpleDateFormat 输出与数字进行比较

Comparing SimpleDateFormat output with number

我正在制作一个程序,每当时间到了一个小时就会执行一些事情。

代码如下:

import java.text.*;
import java.util.Date;
class NMAP {
 public static void main(String[] args) {
  DateFormat dateFormat = new SimpleDateFormat("HH");
  Date date = new Date();
  if (dateFormat.format(date).equals(17)) {
   System.out.println(dateFormat.format(date));
  }
 }
}

它应该输出17(因为它是17:00),但它没有输出任何东西。

为什么不呢?

您正在比较dateFormat.equals(17)一个字符串和一个整数

无论如何 returns 都是错误的,因为它们是不同的类型。

你必须做 dateFormat.equals("17")


而且因为有些时候你会需要 java8 的力量:

LocalTime now = LocalTime.now();
System.out.println(now);
System.out.println(now.getHour() == 17);