2017-06-06 14 views
1

私は時間が1時間に達するたびに何かを実行するプログラムを作っています。 (それは17:00であるので)それは17を出力する必要があります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)); 
    } 
} 
} 

が、それは何も出力しません。ここで

はコードです。

どうしてですか?

+2

''等号( "17")試しに、またはあなたが '比較しています文字列 'に'整数 'を指定します。 – Berger

+0

17は、値17のIntegerオブジェクトに自動ボックス化されます。残りは、重複した質問を参照してください。 – GhostCat

答えて

3

あなたは関係なく、彼らはさまざまな種類があるので、何falseを返していない整数

に対してdateFormat.equals(17)文字列を比較しています。

あなたはdateFormat.equals("17")


そして、いくつかのあなたはjava8の力を必要とするときため行う必要があります:

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