Có đồng hồ bấm giờ trong Java không? Trên google, tôi chỉ tìm thấy mã của đồng hồ bấm giờ không hoạt động - chúng luôn trả về 0 mili giây.
Mã này mà tôi tìm thấy không hoạt động nhưng tôi không hiểu tại sao.
public class StopWatch {
private long startTime = 0;
private long stopTime = 0;
private boolean running = false;
public void start() {
this.startTime = System.currentTimeMillis();
this.running = true;
}
public void stop() {
this.stopTime = System.currentTimeMillis();
this.running = false;
}
//elaspsed time in milliseconds
public long getElapsedTime() {
long elapsed;
if (running) {
elapsed = (System.currentTimeMillis() - startTime);
} else {
elapsed = (stopTime - startTime);
}
return elapsed;
}
//elaspsed time in seconds
public long getElapsedTimeSecs() {
long elapsed;
if (running) {
elapsed = ((System.currentTimeMillis() - startTime) / 1000);
} else {
elapsed = ((stopTime - startTime) / 1000);
}
return elapsed;
}
}
currentTimeMillis()
cho sản xuất, vì nó bị ràng buộc với ngày / giờ hệ thống và không được đảm bảo là đơn điệu (ví dụ: bạn có thể nhận được thời gian đã trôi qua âm). Để đo thời gian sử dụng nanoTime()
- nó được đảm bảo là đơn điệu và được thiết kế chính xác cho mục đích đo. Xem docs.oracle.com/javase/8/docs/api/java/lang/…