Java 获取时间戳的方法大全,以及速度比较
Java获取Unix时间戳 的方法应该是有这3种,当然有可能还有其他,只是我不知道而已,今天的测试也是为了我新添加的工具,也是为了本站新发布的Unix时间戳 转换工具而测试的。
//方法之一 ,也是最快的。
System.currentTimeMillis();
//方法之二 ,第二快的。
new java.util.Date().getTime();
//方法之三 ,最慢的
Calendar.getInstance().getTimeInMillis();
代码注释里写了,获取 时间戳 System.currentTimeMillis();
是最快的,口说无凭,那么我们来测试下。
/**
*
* 开发公司:sojson.com<br/>
* 版权:sojson.com<br/>
* <p>
*
* 时间戳获取方法用时对比
*
* <p>
*
* 区分 责任人 日期 说明<br/>
* 创建 周柏成 2016年4月17日 <br/>
* <p>
* *******
* <p>
* @author zhou-baicheng
* @email json@sojson.com
* @version 1.0,2016年4月17日 <br/>
*
*/
public class TimeTest {
//定义循环一亿次获取
private static double NUMBER = 100000000D;
public static void main(String[] args) {
long t1=System.currentTimeMillis();
testSystem();
long t2=System.currentTimeMillis();
System.out.printf("System.currentTimeMillis()获取方式用时[%s]\n",t2-t1);
testCalander();
long t3=System.currentTimeMillis();
System.out.printf("Calendar.getInstance().getTimeInMillis()获取方式用时[%s]\n",t3-t2);
testDate();
long t4=System.currentTimeMillis();
System.out.printf("new Date().getTime()获取方式用时[%s]\n",t4-t3);
}
//测试System.currentTimeMillis();
public static void testSystem(){
for(int i=0;i<NUMBER;i++){
System.currentTimeMillis();
}
}
//测试Calendar.getInstance().getTimeInMillis();
public static void testCalander(){
for(int i=0;i<NUMBER;i++){
java.util.Calendar.getInstance().getTimeInMillis();
}
}
//测试java.util.Date().getTime();
public static void testDate(){
for(int i=0;i<NUMBER;i++){
new java.util.Date().getTime();
}
}
}
我们每个方法都获取 时间戳 一亿次,得到的结果是这样的:
System.currentTimeMillis()获取方式用时[111]
Calendar.getInstance().getTimeInMillis()获取方式用时[45448]
new Date().getTime()获取方式用时[1781]
相差多大?你应该得出结论吧。
所以我们 Java 如果单纯是获取 时间戳 的话,建议使用第一种方式获取,也就是System.currentTimeMillis()获取方式用时[111]
的方式获取 时间戳 。 Java 代码下载,在附件里。下载可能乱码,先用编辑器打开,再赋值到 Myeclipse 里 or Eclipse 里。
我的电脑配置,上传个图片。免得大家运算计算 时间戳 结果和我有相差而纠结。配置见图,不高不低。
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/120.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。