Format millisecondes simpledate format
Je suis confronté à un drôle de résultat lors de la mise en forme millisecondes pour un SimpleDate format:
De sortie est:
Start date time: 11/06/30 09:45:48:970
End date time: 11/06/30 09:45:52:831
Execution time: 01:00:03:861
Script:
long dateTimeStart = System.currentTimeMillis();
//some script execution here
long dateTimeEnd = System.currentTimeMillis();
"Start date time: " + GlobalUtilities.getDate(dateTimeStart, "yy/MM/dd hh:mm:ss:SSS");
"End date time: " + GlobalUtilities.getDate(dateTimeEnd, "yy/MM/dd hh:mm:ss:SSS");
"Execution time: " + GlobalUtilities.getDate((dateTimeEnd - dateTimeStart), "hh:mm:ss:SSS");
Méthode:
public static String getDate(long milliseconds, String format)
{
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(milliseconds);
}
Aucune idée pourquoi le temps d'exécution de la valeur est donc? Il convient 00:00:03:861, pas 01:00:03:861
Grâce
OriginalL'auteur user706058 | 2011-06-30
Vous devez vous connecter pour publier un commentaire.
Le temps d'exécution est off, car la Date constructeur prend un long spécifiant le nombre de millisecondes écoulées depuis le 1970-01-01.
Voici un autre stackoverflow réponse avec quelques très belles idées! stackoverflow.com/questions/625433/...
Aussi, comme une note de côté, je peux vraiment recommander la JodaTime API lorsque vous traitez avec des dates en Java. Il est vraiment beaucoup plus agréable que dans le haut-Java Dates. joda-time.sourceforge.net
Si vous insistez sur l'utilisation d'une date de formateur, l'essayer c' (insérez votre valeur de x): Calendrier cal = Calendrier.getInstance(); cal.clear(); cal.set(Calendrier.Ordre de la MILLISECONDE, x); SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm:ss.SSS"); System..println(sdf2.format(cal.getTime()));
la Date est alors converti au Calendrier dans le SimpleDateFormat. Le Calendrier prend également les fuseaux horaires et l'Heure d'été en examen donc je suppose que c'est pourquoi vous obtenez 1 heure (si votre travail en europe, quelque part)
OriginalL'auteur Daniel Lundmark
en raison de la conversion de la différence de temps dans la date.
Dans le détail, c'est exactement ce qu'il se passe:
Malheureusement, vous pouvez corriger manuellement la conversion de votre temps.
OriginalL'auteur belgther