Je veux soustraire deux timeperiods dire 16:00:00 de 19:00:00. Est-il java de la fonction pour cela? Les résultats peuvent être en millisecondes à quelques secondes ou minutes.
Réponses
Trop de publicités?String time1 = "16:00:00";
String time2 = "19:00:00";
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
Date date1 = format.parse(time1);
Date date2 = format.parse(time2);
long difference = date2.getTime() - date1.getTime();
La différence est exprimée en millisecondes.
J'ai modifié sfaizs post.
Pour obtenir À peu de différences temporelles, puis
// d1, d2 are dates
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.print(diffDays + " days, ");
System.out.print(diffHours + " hours, ");
System.out.print(diffMinutes + " minutes, ");
System.out.print(diffSeconds + " seconds.");
Tout comme toute autre langue; convertir vos périodes de temps pour un timestamp unix (c'est à dire, de secondes depuis l'époque Unix) et ensuite il suffit de soustraire. Ensuite, le résultat en secondes devrait être utilisé comme un nouveau timestamp unix et lecture formatée dans le format que vous souhaitez.
Ah, donnez-le au-dessus de l'affiche (genesiss) en raison de son crédit, le code est toujours à portée de main ;) Cependant, vous avez maintenant une explication bien :)
La douleur est de convertir à millis et faire la soustraction, puis revenir à ce secondes ou si vous le souhaitez. La meilleure façon est d'utiliser JodaTime.