今日は2010年2月9日火曜日ですが、日付を印刷すると間違った日付になります。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date today = formatter.parse(String.format("%04d-%02d-%02d",
Calendar.getInstance().get(Calendar.YEAR),
Calendar.getInstance().get(Calendar.MONTH),
Calendar.getInstance().get(Calendar.DAY_OF_MONTH)));
System.out.println("Today is " + today.toString());
印刷行の結果は次のようになります。「今日はSatJan09 00:00:00CST2010」
間違いなく2009年1月の土曜日ではなく、2009年2月の火曜日です。私は何か間違ったことをしていると思います。誰かがここで何が悪いのか教えてもらえますか?曜日を手動で設定する必要がありますか?
更新注:
時間、分、秒、ミリ秒をに初期化する必要があるため、今日はで初期化したくありません。これは、ユーザー入力の日付を今日と比較できるようにするために必要です。ユーザーが今日の日付を入力し、フォーマッターを使用してDateオブジェクトを作成する場合、今日をで初期化して2つの日付を比較すると、今日はユーザーの後になります。選択した日付(これは正しくありません)。したがって、今日、hr / min / sec/msなしで1日の始めに初期化する必要があります。new Date()
0
new Date()