2017-06-06 44 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); 
相關問題