Millisecondes actuelles, de long à int

Actuellement j'ai le code suivant:

public static int currentTimeMillis()
{
    long millisLong = System.currentTimeMillis();
    while ( millisLong > Integer.MAX_VALUE )
    {
        millisLong -= Integer.MAX_VALUE;
    }
    return (int)millisLong;
}

qui renvoie l'heure courante dans un int format (pas exactement, mais il peut être utilisé pour la différence de temps). Pour de très bonnes raisons, je ne peux pas utiliser long.

Oui, je suis juste intéressé par la différence entre les deux appels, et cette approche fonctionne bien. Mais il semble tout à fait inacceptable. Je sais qu'. Et inefficaces. Je sais. Donc mes questions, comment puis-je l'améliorer?

J'ai besoin d'une fonction qui renvoie un int tels que:

int x1 = currentTimeMillis(); //my function
long y1 = System.currentTimeMillis();

.....

int x2 = currentTimeMillis();
long y2 = System.currentTimeMillis();

//here, x2 - x1 must be equal to y2 - y1

EDIT:

Pour info, je veux faire cela pour l'analyse comparative. Je suis à l'exécution de tests sur plusieurs threads en parallèle, l'événement d'arrêt est déclenché par un composant externe. Je suis aussi la sérialisation des données d'une manière qui ne prend en charge intet l'objet que je suis la sérialisation ne peut pas avoir long membres.

source d'informationauteur Luchian Grigore