JAVA获取时间戳,哪个更快<转>

本文通过实验对比了三种Java获取当前时间毫秒值的方法:System.currentTimeMillis(), Calendar.getInstance().getTimeInMillis(), new Date().getTime()。结果显示System.currentTimeMillis()性能最佳。

目前获取毫秒值大概有下面三种方法

 

Java代码  收藏代码
  1. //方法 一  
  2. System.currentTimeMillis();   
  3. //方法 二  
  4. Calendar.getInstance().getTimeInMillis();  
  5. //方法 三  
  6. new Date().getTime();  

 最近做监控系统,发现代码中有前两种方法,然后突然有了一个想法,到底哪个更快呢?

然后做了如下实验:

 

Java代码  收藏代码
  1. import java.util.Calendar;  
  2. import java.util.Date;  
  3.   
  4. public class TimeTest {  
  5.     private static long _TEN_THOUSAND=10000;  
  6.     public static void main(String[] args) {  
  7.         long times=1000*_TEN_THOUSAND;  
  8.         long t1=System.currentTimeMillis();  
  9.         testSystem(times);  
  10.         long t2=System.currentTimeMillis();  
  11.         System.out.println(t2-t1);  
  12.         testCalander(times);  
  13.         long t3=System.currentTimeMillis();  
  14.         System.out.println(t3-t2);  
  15.         testDate(times);  
  16.         long t4=System.currentTimeMillis();  
  17.         System.out.println(t4-t3);  
  18.     }  
  19.       
  20.     public static void testSystem(long times){//use 188  
  21.         for(int i=0;i<times;i++){  
  22.             long currentTime=System.currentTimeMillis();  
  23.         }  
  24.     }  
  25.   
  26.     public static void testCalander(long times){//use 6299  
  27.         for(int i=0;i<times;i++){  
  28.             long currentTime=Calendar.getInstance().getTimeInMillis();  
  29.         }  
  30.     }  
  31.       
  32.     public static void testDate(long times){  
  33.         for(int i=0;i<times;i++){  
  34.             long currentTime=new Date().getTime();  
  35.         }  
  36.           
  37.     }  
  38.   
  39. }  

因为很简单我就不加注释了,每种方法都运行1千万次,然后查看运行结果

Java代码  收藏代码
  1. 187  
  2. 7032  
  3. 297  

 

结果发现 System.currentTimeMillis() 这种方式速度最快

Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,看看源码会发现,Canlendar因为要处理时区问题会耗费很多的时间。

所以建议多使用第一种方式。

 

另,System 类中有很多高效的方法,比如,arrayCopy 之类的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值