Ich möchte die Gesamtlaufzeit meines Programms von Anfang bis Ende berechnen und Laufzeit in JFrame aktualisieren, aber wenn ich mein Programm ausführen, bekomme ich über 70 Jahre, 1 Tag und 2 Stunden. Warum ? Was falsch?So berechnen Sie die Laufzeit
private void setMachineTime(){
Timer timer = new Timer();
long startTime = new Date().getTime();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
long endTime = new Date().getTime();
long diffTime = endTime - startTime ;
String time = new SimpleDateFormat("yy:mm:dd:HH:mm:ss").format(diffTime);
System.out.println(time);
}
}, 0, 1000);
}
UPD: schrieb ich Code mit meinem eigenen Format Zeitverfahren. Jetzt habe ich was ich will. Danke an euch alle.
private void setMachineTime(){
Timer timer = new Timer();
long startTime = new Date().getTime();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
long endTime = new Date().getTime();
long diffTime = endTime - startTime;
String diffSeconds = formatTime(diffTime/1000 % 60);
String diffMinutes = formatTime(diffTime/(60 * 1000) % 60);
String diffHours = formatTime(diffTime/(60 * 60 * 1000) % 24);
System.out.println(diffHours + ":" + diffMinutes + ":" + diffSeconds);
}
}, 0, 1000);
}
private String formatTime(long diff){
long t;
t = diff;
if(t < 10){
return String.valueOf("0"+t);
} else {
return String.valueOf(t);
}
}
Sie werden nicht 70 Jahre alt. Sie erstellen eine Zeichenfolge basierend auf einem Datum, das als die Zeit seit dem 1. Januar 1970 um 12:00 Uhr interpretiert wird. Dann drucken Sie das Jahr, also 1970 oder "70". Sehen Sie, was passiert, wenn Sie 'String time = new SimpleDateFormat versuchen (" yy: mm: dd: HH: mm: ss "). Format (0);' - es wird das genaue Datum sein. Http://stackoverflow.com/questions/17940200/how-to-find-the-duration-of-difference-between-two-dates-in-java – childofsoong
Eigentlich, jetzt, wo ich darüber nachdenke, ist es wahrscheinlich Ich werde das genaue Datum nicht sagen, sondern mich stattdessen auf Ihre Zeitzone einstellen. Gleiches Prinzip. – childofsoong
[Wie formatiert man ein verstrichenes Zeitintervall im Format hh: mm: ss.SSS in Java?] (Http://stackoverflow.com/questions/6710094/how-to-format-an-elapsed-time-interval-in -hhmmss-sss-format-in-java) – shmosel