Maison > Java > javaDidacticiel > Comment puis-je mesurer avec précision la durée entre deux moments en Java, même lorsque l'heure de début est postérieure à l'heure de fin ?

Comment puis-je mesurer avec précision la durée entre deux moments en Java, même lorsque l'heure de début est postérieure à l'heure de fin ?

Mary-Kate Olsen
Libérer: 2024-12-20 14:30:09
original
590 Les gens l'ont consulté

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

Mesure du temps écoulé en Java

Question :

Comment puis-je déterminer la durée entre deux points temporels en Java ? Plus précisément, je souhaite représenter startTime et endTime en tant que variables d'instance dans une classe et calculer leur différence dans une méthode getDuration(). Cependant, il y a une contrainte : je dois gérer les cas où startTime est postérieur à endTime tout en obtenant un résultat précis (par exemple, startTime = 23h00, endTime = 1h00, durée = 2h00).

Réponse :

Pour obtenir une mesure précise du temps en Java, vous devez utiliser System.nanoTime(). Contrairement à System.currentTimeMillis(), nanoTime est conçu spécifiquement pour mesurer le temps écoulé.

Explication :

System.currentTimeMillis() fournit un mur -l'heure de l'horloge, susceptible d'être ajustée et corrigée par le système. Cela conduit à des incohérences lors de la mesure du temps écoulé. En revanche, System.nanoTime() n'est pas affecté par ces corrections et propose une mesure précise des différences horaires, même si startTime dépasse endTime.

Pour implémenter cela dans votre classe :

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

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

    // ...
}
Copier après la connexion

En utilisant System.nanoTime(), vous pouvez obtenir des calculs précis de durée, même lorsque vous gérez des intervalles de temps s'étendant sur minuit ou avec startTime se produisant après endTime.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal