Java でアプリケーションを作成しています。開始時刻を入力するテキスト フィールドと、終了時刻を入力するテキスト フィールドがあります。そして、これらのエントリの後に、時差を hh:mm の形式で表示したいと思います。
例:
開始時間:12:00
終了時間:14:30結果: 2:30
Java でアプリケーションを作成しています。開始時刻を入力するテキスト フィールドと、終了時刻を入力するテキスト フィールドがあります。そして、これらのエントリの後に、時差を hh:mm の形式で表示したいと思います。
例:
開始時間:12:00
終了時間:14:30結果: 2:30
Date オブジェクトを解析およびフォーマットするためのSimpleDateFormatについて学習すると役立ちます。
テキストフィールドの使用で日付を解析するには
// use "hh:mm" if you work in 12-hour format or
// use "HH:mm" if you work in 24-hour format
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
try
{
Date date = dateFormat.parse(startTextField.getText());
}
catch (ParseException e)
{
//TODO don't forget process exception
e.printStackTrace();
}
日付フィールドから時間をミリ秒単位で取得します。「開始日」から「開始日」を引きます。例えば
toDate.getTime() - fromDate.getTime()
次に、ミリ秒単位の時差、秒、時間、日などに計算する簡単な問題があります.
milliseconds / 1000
秒など
これまでの2つの回答はどちらも正しいですが、一緒に利用するのが最善だと思います.
そのようです:
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
try {
Date startDate = dateFormat.parse(startTextField.getText());
Date endDate = dateFormat.parse(endTextField.getText());
long differenceMillis = endDate.getTime() - startDate.getTime();
resultTextField.setText(dateFormat.format(new Date(differenceMillis)));
} catch (ParseException e) {
resultTextField.setText("ERROR");
}
すべてのエンコード方式については、この Javadocを参照してください。このメソッドは日数の違いを削除し、時間のみを報告することに注意してください。