Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

La gestion du temps avec les API historiques

Aspects avancés de Jenkins L'API des calendars



Accès rapide :
Les informations temporelles proposées par la classe System
La méthode System.currentTimeMillis()
La méthode System.nanoTime()
La classe java.util.Date

La gestion des dates et du temps n'est pas si simple que ça en Java. Effectivement, plusieurs API sont apparues au fil du temps, les nouvelles remplaçant en partie les anciennes. Bien qu'il existe de nombreux éléments aujourd'hui dépréciés, vous pouvez rencontrer toutes ces API dans les divers développements auxquels vous devrez vous confronter. C'est pour cette raison que nous allons étudier ces différentes possibilités.

Dans ce document, nous allons nous focaliser sur les fonctionnalités proposées (à une exception près) à partir de la première version de Java.

Les informations temporelles proposées par la classe System

Il est possible d'obtenir des informations temporelles à partir de la classe java.lang.System. Deux possibilités nous sont offertes : étudions-les.

vous pouvez consulter notre documentation de l'API Java pour de plus amples informations sur la classe java.lang.System.

La méthode System.currentTimeMillis()

Cette méthode permet de calculer la différence de temps écoulée, mesurée en millisecondes, entre l'instant présent et le 1er janvier 1970 à minuit (en temps universel coordonné - UTC). La valeur retournée est un entier long. Voici un exemple d'utilisation.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
package fr.koor.sample;

import java.sql.Date;

public interface Sample {
    
    public static void main( String[] args ) {
        
        // On récupère le nombre de millisecondes écoulées depuis le 1er janvier 1970 à minuit.  
        long timestampMS = System.currentTimeMillis();
        
        // On affiche le timestamp.
        System.out.printf( "Nombre de milliseconds écoulée depuis le 1er janvier : %d\n", timestampMS );
        
    }
    
}
Exemple d'utilisation de la méthode System.currentTimeMillis()

Vous pouvez vous servir de cette méthode pour mesurer le temps pris par un traitement donné, à condition que ce temps soit supérieur à une milliseconde. Voici un exemple montrant cette possibilité : le traitement est ici un simple appel à la méthode Thread.sleep afin d'obtenir une pause d'une seconde.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
package fr.koor.sample;

public interface Sample {
    
    public static void main( String[] args ) throws Exception {
        
        // On récupère un timestamp avant le début du traitement  
        long begin = System.currentTimeMillis();
        
        // On attend une seconde : le temps est aussi exprimé en millisecondes.
        Thread.sleep( 1000 );

        // On récupère un timestamp après la fin du traitement  
        long end = System.currentTimeMillis();
        
        // On calcule la durée du traitement
        long duration = end - begin;
        
        // On affiche la durée mesurée pour effectuer le traitement
        System.out.printf( "Duration : %d ms\n", duration );
        
    }
    
}
Utilisation de la méthode System.currentTimeMillis() pour mesurer la durée d'un traitement.
Pour de plus amples informations sur cette méthode, veuillez activer ce lien.

La méthode System.nanoTime()

La classe java.util.Date



Aspects avancés de Jenkins L'API des calendars