私は、Javaスイングウィンドウで使用するカウントアップタイマー関数を作成しました。問題は時間がゼロから数え始めないことです。私がタイマーを始めるとき、最初の時間は常に1時間先に来る。ここで0から開始しないjavaのタイマーをカウントする
は私のコードです:
public static void timeRecording(){
Date startTime = new Date();
int delay = 1000; //milliseconds
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss");
Date actualTime = new Date();
String dateToPrint = timeFormat.format(new Date(actualTime.getTime() - startTime.getTime()));
//String dateToPrint = timeFormat.format(actualTime);
System.out.println(actualTime);
//actualTime
// String timeToPrint.timeFormat = actualTime;
timerLabel.setText(dateToPrint);
}
};
new Timer(delay, taskPerformer).start();
}
これは、開始時に示された時間である:new Date(actualTime.getTime() - startTime.getTime())
で日付を作成します。
を使用して試みることができます。 – assylias
@assylias おそらく私のタイムゾーンはUTC + 0(リスボングリニッジ)です。私はすでにtimeFormat.setTimeZone(TimeZone.getTimeZone( "GMT"))でフォーマットを変更しようとしましたが、今は12:00:00から開始します – Bruno
リスボンはUTC + 1にあります – assylias