2017-06-06 45 views
1

我正在制作一个程序,在每次达到一小时时执行一些操作。将SimpleDateFormat输出与数字进行比较

下面是代码:

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),但它确实没有任何输出。

为什么不呢?

+2

尝试'等于( “17”)',或者你是在比较了'带'Integer'的字符串。 – Berger

+0

17将自动装箱值更改为值为17的Integer对象。其余部分请参阅重复的问题。 – GhostCat

回答

3

您比较dateFormat.equals(17)一个字符串中的一个整数

即返回false因为不管它们是什么不同的类型。

你要做的dateFormat.equals("17")


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

LocalTime now = LocalTime.now(); 
System.out.println(now); 
System.out.println(now.getHour() == 17); 
相关问题