2016-07-04 18 views
1

日付は2016-07-08(2016年7月8日)の文字列形式です。私は金曜日かどうかを確認する必要があります。その理由は、日付が変更され、常に提供された日付が金曜日かどうかを確認する必要があるためです。私はCALに格納された値を出力しようとした、そしてそれは月1月4日0時00分〇​​〇秒CET 2016を返して金曜日かどうかを確認するには、文字列形式の日付を実際の日付に変換する必要があります。

DateFormat formatter = new SimpleDateFormat("YYYY-MM-dd"); 
java.util.Date date = formatter.parse(startDate); 
cal.setTime(date); 
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){ 
    System.out.println("IT'S FRIDAY!!!!");  
} 

:私は、次のコードを(たstartDateは私の日付を保持している文字列であると仮定)を使用しています

答えて

3

資本金Yは、週単位です。おそらくyyyy-MM-dd(小文字はyとなります)を意味します。

javadocには、すべての有効なパターンがリストされています。

+0

それは働いて、ありがとう:) –

1

あなたの問題は、パターン解析に使用されるパターンにあります。代わりにYYYY-MM-ddでてSimpleDateFormatを作成することがyyyy、ないYYYYする必要があります代わりに

new SimpleDateFormat("yyyy-MM-dd") 
+0

それは働いて、ありがとう:) –

2

これを使用してください。

これを使用してください。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
0

"yyyy-MM-dd"を小文字の「y」の日付書式として使用する必要があります。

0

その他の回答は正しいです。しかし、質問と回答は時代遅れのクラスを使用します。

java.time

java.timeフレームワークは、Javaの最初のバージョンにバンドルされて面倒な古い日時のクラスを取って代わります。

Boolean isFriday = LocalDate.parse("2016-07-08").getDayOfWeek().equals(DayOfWeek.FRIDAY); 

LocalDateクラスは、時間日の時間帯なしなし日付専用の値を表しています。

enumには、曜日を表しテストするインスタンスが7つあります。

入力文字列は、ISO 8601形式です。 java.timeクラスは、String表現の解析と生成にデフォルトでこれらの標準形式を使用します。したがって、書式設定パターンを定義する必要はありません。

関連する問題