Java--System.currentTimeMillis()获取时间,计算代码执行效率
一、说明
System.currentTimeMillis()方法获取的是从1970年01月01日00时00分00秒000毫秒—到—>此刻的毫秒数返回类型是long类型。
二、实现代码
public class Test {
public static void main(String[] args) {
//方法第一行代码
long startTime = System.currentTimeMillis();
for(int i=0;i<10000;i++){
System.out.println(i);
}
//方法最后一行代码
long endTime = System.currentTimeMillis();
//long类型时间差,单位毫秒
long timeLong = endTime - startTime;
//long类型时间差转为double类型时间差,单位毫秒
double timeDouble= Double.parseDouble(Long.toString(timeLong));
System.out.println("该方法执行时间为" + timeDouble+ "毫秒,即" + timeDouble/(double)1000 + "秒");
}
}
附(可忽略):System.currentTimeMillis()获取系统时间并格式化为yyyy-MM-dd HH:mm:ss格式,如2017-12-09 12:12:12
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowSystemTime = sdf.format(date);
System.out.println("当前系统时间为" + nowSystemTime);
例题:
4.设计一个秒表Ch3Demo4的类,该类包含:
* (1)具有访问器方法的私有数据域startTime和endTime;
* (2)一个无参构造方法,使用当前时间来初始化startTime;
* (3)一个名为start()方法,将startTime重设为当前时间;
* (4)一个名为Stop()方法,将entTime设置为当前时间;
* (5)一个名为getElapsedTime()的方法,以毫秒为单位返回秒表记录的流逝时间
public class Ch3Demo4 {
long startTime;
long endTime;
public static void main(String[] args){
Ch3Demo4 res = new Ch3Demo4();
//打开秒表
res.start();
int sum = 0;
for(int i=0;i<1000000000;i++){
sum += i;
}
//关闭秒表,记录流逝的时间
res.stop();
System.out.println(res.getElapsedTime());
}
//构造方法
public Ch3Demo4(){
//使用当前时间初始化startTime
//System.currentTimeMillis()方法获取的是从1970年01月01日00时00分00秒000毫秒—到—>此刻的毫秒数返回类型是long类型。
startTime = System.currentTimeMillis();
}
//访问器方法
public long getStartTime(){
return startTime;
}
public long getEndTime(){
return getEndTime();
}
//一个名为start()方法,将startTime重设为当前时间;
void start(){
startTime = System.currentTimeMillis();
}
void stop(){
endTime = System.currentTimeMillis();
}
//一个名为getElapsedTime()的方法,以毫秒为单位返回秒表记录的流逝时间
long getElapsedTime(){
//返回流逝的时间
return endTime - startTime;
}
}