Java での日付と時刻の差の計算
このコード スニペットの目的は、指定された 2 つの日付間の時差を決定することです。時、分、秒。ただし、提供されたコードは間違った結果を生成するようです。問題を調べて、より正確な解決策を提供しましょう。
このコードは、2 つの日付 (d1 と d2) で表されるミリ秒を減算して時差を計算します。このアプローチは一般に正しいですが、後続の分と時間の計算で問題が発生します。
ミリ秒を分に変換するとき、コードは誤って TimeUnit.MILLISECONDS.toMinutes の代わりに / を使用します。同様に、時間の場合は、TimeUnit.MILLISECONDS.toHours の代わりに / を使用します。これらの操作により計算が正しく行われず、出力に不一致が見られます。
この問題を修正するには、異なる時刻の間で変換するための便利なメソッドを提供する java.util.concurrent.TimeUnit クラスを利用できます。単位。修正されたコード スニペットは次のとおりです。
... // Calculate time difference in milliseconds long diff = d2.getTime() - d1.getTime(); // Convert to seconds, minutes, and hours using TimeUnit long seconds = TimeUnit.MILLISECONDS.toSeconds(diff); long minutes = TimeUnit.MILLISECONDS.toMinutes(diff); long hours = TimeUnit.MILLISECONDS.toHours(diff); System.out.println("Time in seconds: " + seconds + " seconds."); System.out.println("Time in minutes: " + minutes + " minutes."); System.out.println("Time in hours: " + hours + " hours."); ...
この修正されたコードを使用すると、期待どおりの結果が得られます。
Time in seconds: 225 seconds. Time in minutes: 3 minutes. Time in hours: 0 hours.
TimeUnit を使用して適切な変換を組み込むことにより、コードは時間を正確に計算します。意図したとおり、2 つの日付の差があります。
以上がJava で日付と時刻の違いを正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。