現在の時刻が表示されるヘッダーを持つプログラムを書いています。ユーザーが日付/時刻の設定を変更できるようにしたい。しかし、ユーザーが変更した後、カレンダーを最新の状態に保つことができません。ユーザーが入力した値が常に表示されます。例えば:
Calendar cal = Calendar.getInstance();
System.out.println(cal.getTime());
cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(cal.getTime());
最初の出力が
Mon Feb 18 11:33:07 CET 2013
ここで欲しいのは、毎秒 2 秒の出力後に取得することです
Mon Sep 18 11:33:09 CET 2013 // Month = Sep and Seconds = 09
私が代わりに得るのは
Mon Sep 18 11:33:07 CET 2013 // Month = Sep, seconds don't change, still 07!!
cal = Calendar.getInstance();
2 番目の出力の前に追加すると、
Mon Feb 18 11:33:09 CET 2013 // Seconds = 09, month doesn't change, still Feb!!
私が見つけられない簡単で明白な実装があるに違いないと思います。
更新: 作業中の組み込みシステムで DateFormat を使用できません。