0

Java でアプリケーションを作成しています。開始時刻を入力するテキスト フィールドと、終了時刻を入力するテキスト フィールドがあります。そして、これらのエントリの後に、時差を hh:mm の形式で表示したいと思います。

例:

開始時間:12:00
終了時間:14:30

結果: 2:30

4

3 に答える 3

1

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();
    }
于 2012-08-14T09:27:23.020 に答える
1

日付フィールドから時間をミリ秒単位で取得します。「開始日」から「開始日」を引きます。例えば

toDate.getTime() - fromDate.getTime()

次に、ミリ秒単位の時差、秒、時間、日などに計算する簡単な問題があります.

milliseconds / 1000

秒など

于 2012-08-14T09:09:19.633 に答える
0

これまでの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を参照してください。このメソッドは日数の違いを削除し、時間のみを報告することに注意してください。

于 2012-08-14T16:14:15.123 に答える