Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengukur Tempoh Antara Dua Titik Masa dengan Tepat di Java, Walaupun Masa Mula adalah Selepas Masa Tamat?

Bagaimanakah Saya Boleh Mengukur Tempoh Antara Dua Titik Masa dengan Tepat di Java, Walaupun Masa Mula adalah Selepas Masa Tamat?

Mary-Kate Olsen
Lepaskan: 2024-12-20 14:30:09
asal
590 orang telah melayarinya

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

Mengukur Masa Berlalu di Jawa

Soalan:

Bagaimanakah saya boleh menentukan tempoh antara dua titik masa di Jawa? Secara khusus, saya ingin mewakili startTime dan endTime sebagai pembolehubah contoh dalam kelas dan mengira perbezaannya dalam kaedah getDuration(). Walau bagaimanapun, terdapat kekangan: Saya perlu mengendalikan kes di mana StartTime lewat daripada endTime dan masih mendapat hasil yang tepat (cth., StartTime = 23:00, endTime = 1:00, duration = 2:00).

Jawapan:

Untuk mencapai ukuran masa yang tepat dalam Java, anda mesti menggunakan System.nanoTime(). Bertentangan dengan System.currentTimeMillis(), nanoTime direka khusus untuk mengukur masa berlalu.

Penjelasan:

System.currentTimeMillis() menyediakan dinding -masa jam, yang terdedah kepada pelarasan dan pembetulan oleh sistem. Ini membawa kepada ketidakkonsistenan semasa mengukur masa berlalu. Sebaliknya, System.nanoTime() tidak terjejas oleh pembetulan ini dan menawarkan pengukuran yang tepat bagi perbezaan masa, walaupun startTime melebihi endTime.

Untuk melaksanakan ini dalam kelas anda:

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

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

    // ...
}
Salin selepas log masuk

Dengan menggunakan System.nanoTime(), anda boleh mendapatkan pengiraan tempoh masa yang tepat, walaupun semasa mengendalikan selang masa merentas tengah malam atau dengan masa mula berlaku selepas masa tamat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Tempoh Antara Dua Titik Masa dengan Tepat di Java, Walaupun Masa Mula adalah Selepas Masa Tamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan