getMilliseconds() de Java Date
J'ai besoin d'une fonction comme
long getMillis(Date aDate);
qui renvoie les millisecondes de la Date de la seconde.
Je ne peux pas utiliser Yoda, SimpleDateFormat ou d'autres bibliothèques parce que c'est gwt code.
Ma solution actuelle est de faire date.getTime() % 1000
Est-il un meilleur moyen?
Quel est le problème avec votre solution actuelle? Me semble bon.
C'est du javascript
Ok merci pour le retour rapide. Java Dates sont vraiment de la merde à mon humble avis.
cela fonctionne pour les dates de 1/1/1970. L' % 1000 seulement surprenant choses pour les nombres négatifs par exemple, les dates d'avant 1970.
Sur les systèmes Windows avant de Vista la granularité est de 1/60e de seconde (~16 ms). Cela signifie que la Date n'est pas aussi précis qu'il pourrait l'être, il n'y a rien de mal avec la ligne de l'OP posté cependant.
C'est du javascript
Ok merci pour le retour rapide. Java Dates sont vraiment de la merde à mon humble avis.
cela fonctionne pour les dates de 1/1/1970. L' % 1000 seulement surprenant choses pour les nombres négatifs par exemple, les dates d'avant 1970.
Sur les systèmes Windows avant de Vista la granularité est de 1/60e de seconde (~16 ms). Cela signifie que la Date n'est pas aussi précis qu'il pourrait l'être, il n'y a rien de mal avec la ligne de l'OP posté cependant.
OriginalL'auteur Uberto | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
Comme indiqué par Pierre Lawrey, en général, vous besoin de quelque chose comme
depuis
%
travaille dans une "étrange" dans Java. J'appelle ça de l'étrange, comme je l'ai toujours besoin de la raison pour tomber dans une plage donnée (ici: 0..999), plutôt que d'obtenir parfois des résultats négatifs. Malheureusement, cela fonctionne de cette façon dans la plupart des Processeurs et de la plupart des langues, de sorte que nous avons à vivre avec.Retiré déclaration au sujet de: "%" être étrange. Annulation si vous voulez vraiment dire que.
D'accord: c'est la norme. Toutefois, la norme est cassé, comme pour les nombres négatifs il le fait rarement ce dont vous avez besoin. Prendre cette question comme un exemple pour le cas où vous avez besoin de la raison pour toujours tomber dans l'intervalle 0..999. Est-il un exemple où vous avez besoin d'un résultat négatif? J'en doute.
Je pense que la confusion est que vous avez dit "%" peut-être étrange, quand je pense que vous vouliez dire la date.getTime() peut être étrange.
Je voulais juste dire quand j'ai couru ce code, il a causé, 'n' pour obtenir un résultat négatif à tort, et quand j'ai changé de 'int' utilisation de 'long' des choses a fonctionné comme prévu et il n'y avait plus de dépassement d'entier.
OriginalL'auteur maaartinus
Essayé ci-dessus et eu un comportement inattendu jusqu'à ce que j'ai utilisé le mod avec 1000 comme un long.
OriginalL'auteur Joseph Valerio
tl;dr
java.temps
La méthode moderne utilise java.les classes de temps. Ces supplanter le gênants vieil héritage des classes comme
java.util.Date
.Extrait de votre nombre de millisecondes écoulées depuis l'époque de
1970-01-01T00:00:00Z
.Conversion
Si vous êtes passé d'un
java.util.Date
objet, de les convertir en java.temps. Appel à de nouvelles méthodes ajoutées aux anciennes classes.OriginalL'auteur Basil Bourque