Java-统计程序运行的时长(计算两个时间相差的毫秒数、秒数)
最近在做Hbase的查询性能验证,需要统计查询的执行时长,所以需要统计开始时间和结束时间的时间差。
下面是使用SimpleDateFormat和Date计算时间差(相差毫秒数)的程序示例,仅供参考。
package com.sgcc; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Main { public static long timeDiff(String startTime, String endTime) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
long diff;
try {
diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
} catch (ParseException e) {
throw new RuntimeException(e);
}
return diff;
} public static void main(String[] args) { SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String startTime = sdf.format(new Date());
try {
Thread.sleep(1200);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
String endTime = sdf.format(new Date());
System.out.println(timeDiff(startTime,endTime)+"ms"); }
}
【改进版本】时间差可以自动按照时间单位(小时、分钟、秒、毫秒)显示,四舍五入保留2位小数。
package com.sgcc; import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Main { public static String timeDiff(String startTime, String endTime,String timeUnit) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
DecimalFormat df = new DecimalFormat("#.00");
long diff;
try {
diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
} catch (ParseException e) {
throw new RuntimeException(e);
}
if (timeUnit.equals("h")){
double diffhour = Double.parseDouble(df.format(diff / (1000.0*3600)));
return diffhour + "h";
}
else if (timeUnit.equals("min")){
double diffmin = Double.parseDouble(df.format(diff / (1000.0*60)));
return diffmin + "min";
} else if(timeUnit.equals("s")){
double diffSeconds = Double.parseDouble(df.format(diff / 1000.0));
return diffSeconds + "s";
}else if(timeUnit.equals("ms")){
return diff + "ms";
}else{
System.out.println("time unit is wrong! The default result returns millisecond.");
return diff + "ms";
}
} public static void main(String[] args) { SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String startTime = sdf.format(new Date());
try {
Thread.sleep(1599);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
String endTime = sdf.format(new Date()); System.out.println(timeDiff(startTime,endTime,"s")); }
}
Java-统计程序运行的时长(计算两个时间相差的毫秒数、秒数)的更多相关文章
- 计算两个NSDate之间,相隔多少秒数
计算两个NSDate之间,相隔多少秒数 //两个时间间隔秒数 - (NSInteger)intervalSecondsWithSmallDate:(NSDate*)smallDate bigDate: ...
- Java计算两个时间的天数差与月数差 LocalDateTime
/** * 计算两个时间点的天数差 * @param dt1 第一个时间点 * @param dt2 第二个时间点 * @return int,即要计算的天数差 */ public stat ...
- MySQL计算两个日期相差的天数、月数、年数
MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...
- java计算两个时间相差(天、小时、分钟、秒)
public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格 ...
- php计算两个时间相差的天数、小时数、分钟数、秒数
$startdate="2011-3-15 11:50:00";//开始时间 $enddate="2012-12-12 12:12:12";//结束时间 $da ...
- java统计程序运行的时间
耗时统计 第一种是以毫秒为单位计算的.long startTime = System.currentTimeMillis(); //获取开始时间 //程序做一些功能性的操作doSomething ...
- JAVA中计算两个时间相差多少 天,时,分,秒
1: import java.util.Date; 2: 3: public class ShowTimeInterval{ 4: public void ShowTimeInterval(Date ...
- db2 怎么计算两个时间相差多少个月。如2015-10-10 和2014-1-12
SELECT timestampdiff (256, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23')) ...
- SqlSever基础 datediff 计算两个时间相差多少年份
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- sql server 计算两个时间 相差的 几天几时几分几秒
CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + '天 ...
随机推荐
- 区分开发环境和生产环境webpack
- P1032
写这道不算难的题目是我遇到了不少问题,复述以下过程吧. 由于数据很水,这道题用不到KMP算法,只要使用朴素算法进行字符串比对就可以了. 1 首先,我错误的选择了dfs算法,导致了TLE的发生.这类求最 ...
- 解决JedisConnectionException的方法
使用maven连接redis,报JedisConnectionException错误,如下: 解决方案: 找到对应启动的redis.conf文件 1.设置bind配置,已注释 2.设置protecte ...
- APB Slave Mux
基于APB slave mux我们可以快速地将多个apb slave连接在APB上面.在实际的设计当中都是采用这样的方式连接多个APB slave的 DECODE4BIT - 可以理解为master接 ...
- Oracle数据库期末考试--学堂在线
1.单选题 (2分) 在Oracle数据库中,下面哪类索引最适合SQL范围查找? 2.单选题 (2分) 在创建Oracle数据库表时,下面哪个元素不出现在CREATE TABLE语句中? 3.单选题 ...
- pycharm等编辑器快捷键大赏
1.序论 平时打代码的时候用鼠标在写代码的时候还行,代码一长就GG,快捷键便是我们的好选择 2.应用场景 1.问题一--选中一段指定区域 我想选中一段区域(我们一般用鼠标拖动),或者某一个标识符(光标 ...
- 【lvgl-micropython】官方源码之ports/unix 编译报错
lv_micropython/ports/unix make 报错 编译环境如下 这是缺少SDL2库导致的 sudo apt-get install libsdl2-2.0 sudo apt-get ...
- 【C++】类成员冒号初始化以及构造函数内赋值
From:https://blog.csdn.net/zj510/article/details/8135556 通常我们对类成员进行"初始化"有两种方式: 1. 构造函数后面跟冒 ...
- java - ArrayList的使用
package list; import java.util.ArrayList; import demo.Hero; public class ListTs { public static void ...
- [转帖]PostgreSQL数据加载工具之pg_bulkload
https://www.jianshu.com/p/b576207f2f3c 1. pg_bulkload介绍 PostgreSQL提供了一个copy命令的便利数据加载工具,copy命令源于Postg ...