ホームページ > Java > &#&チュートリアル > 開始時刻が終了時刻を過ぎている場合でも、Java で 2 つの時点間の期間を正確に測定するにはどうすればよいですか?

開始時刻が終了時刻を過ぎている場合でも、Java で 2 つの時点間の期間を正確に測定するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-20 14:30:09
オリジナル
631 人が閲覧しました

How Can I Accurately Measure the Duration Between Two Time Points in Java, Even When the Start Time is After the End Time?

Java での経過時間の測定

質問:

間の期間を確認するにはどうすればよいですか? Java には 2 つの時点がありますか?具体的には、startTime と endTime をクラス内のインスタンス変数として表現し、getDuration() メソッドでそれらの差を計算したいと考えています。ただし、制約があります。startTime が endTime より遅い場合でも、正確な結果を得る必要がある (例: startTime = 23:00、endTime = 1:00、duration = 2:00)。

答え:

Java で正確な時間測定を実現するには、以下を利用する必要があります。 System.nanoTime()System.currentTimeMillis() とは対照的に、nanoTime は経過時間を測定するために特別に設計されています。

説明:

System.currentTimeMillis() は壁を提供します。 - クロック時間。システムによる調整や修正の影響を受けやすい。これにより、経過時間を測定する際に不一致が生じます。一方、System.nanoTime() はこれらの修正の影響を受けず、startTime が endTime を超えている場合でも、時差を正確に測定できます。

これをクラスに実装するには:

public class Stream {
    private long startTime;
    private long endTime;

    public long getDuration() {
        return endTime - startTime;
    }

    // ...
}
ログイン後にコピー

System.nanoTime() を利用することで、真夜中にまたがる時間間隔を処理する場合や、startTime が endTime の後に発生する場合でも、正確な継続時間を計算できます。

以上が開始時刻が終了時刻を過ぎている場合でも、Java で 2 つの時点間の期間を正確に測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート