La différence entre le Système.currentTimeMillis() et Date getTime()?
J'espérais de serrer un petit gain de performance de nombreux appels à une fonction qui retourne un timestamp. La fonction ressemble à ceci:
public static long get_now_ms(){
//returns number of MILLISECONDS since epoch
java.util.Date d = new java.util.Date();
return d.getTime();
}
Puis-je la remplacer par:
public static long get_now_ms(){
//returns number of MILLISECONDS since epoch
return System.currentTimeMillis();
}
Je sais que la Date utilise en interne du Système.currentTimeMillis(). Ma question est plus de savoir si ou non de l'heure d'été ou l'heure de la zone pourrait jamais conduire à une différence de résultat avec ces deux approches. J'imagine que cela peut venir avec le Calendrier des objets, mais pas les objets Date, mais j'aimerais quelques éclaircissements sur ce point.
Je sais que je ne sera probablement pas voir une différence sensible de la performance dans une application réelle, mais tiens néanmoins à connaître la réponse.
Merci!
OriginalL'auteur DivideByHero | 2013-06-08
Vous devez vous connecter pour publier un commentaire.
Pas de différence, sauf pour les très léger décalage causé par l'attribution d'un objet Date.
De la javadoc le constructeur par défaut de
Date
:Un
Date
est juste une mince wrapper autour de l'époque millisecondes, sans aucune notion de fuseaux horaires. Seulement lors du rendu d'une Chaîne est le fuseau horaire considérée, mais qui est géré par laLocale
classe.OriginalL'auteur Bohemian
Je vous conseille d'exécuter un test unitaire (ex. https://gist.github.com/ledlogic/8532028). J'ai vu seulement un léger avantage à utiliser le Système.currentTimeMillis rapport à l' (new Date()).getTime().
Les courses individuelles parfois être légèrement biaisé vers l'autre approche - en fonction de votre système d'activité.
OriginalL'auteur ledlogic
Pas de différence, et le Calendrier.getTimeInMillis() est aussi le même. parce que les résultats de retour est le nombre de millisecondes depuis le 1er janvier 1970, 00:00:00 GMT. vous obtiendrez une même valeur de type long où vous êtes tous sur le mot.
OriginalL'auteur Andy Gong