转载:JAVA获取时间戳,哪个更快

转载 2013年12月05日 21:32:17

转载:http://hi.baidu.com/suofang/item/96629a060a44c119eafe38cc


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

 
Java代码  
//方法 一   
System.currentTimeMillis();    
//方法 二   
Calendar.getInstance().getTimeInMillis();   
//方法 三   
new Date().getTime(); 
//方法 一
System.currentTimeMillis(); 
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new Date().getTime(); 最近做监控系统,发现代码中有前两种方法,然后突然有了一个想法,到底哪个更快呢?
然后做了如下实验:
 

Java代码  

import java.util.Calendar;   
import java.util.Date;   
  
public class TimeTest {   
    private static long _TEN_THOUSAND=10000;   
    public static void main(String[] args) {   
        long times=1000*_TEN_THOUSAND;   
        long t1=System.currentTimeMillis();   
        testSystem(times);   
        long t2=System.currentTimeMillis();   
        System.out.println(t2-t1);   
        testCalander(times);   
        long t3=System.currentTimeMillis();   
        System.out.println(t3-t2);   
        testDate(times);   
        long t4=System.currentTimeMillis();   
        System.out.println(t4-t3);   
    }   
       
    public static void testSystem(long times){//use 188   
        for(int i=0;i<times;i++){   
            long currentTime=System.currentTimeMillis();   
        }   
    }   
  
    public static void testCalander(long times){//use 6299   
        for(int i=0;i<times;i++){   
            long currentTime=Calendar.getInstance().getTimeInMillis();   
        }   
    }   
       
    public static void testDate(long times){   
        for(int i=0;i<times;i++){   
            long currentTime=new Date().getTime();   
        }   
           
    }   
} 
import java.util.Calendar;
import java.util.Date;
public class TimeTest {
 private static long _TEN_THOUSAND=10000;
 public static void main(String[] args) {
  long times=1000*_TEN_THOUSAND;
  long t1=System.currentTimeMillis();
  testSystem(times);
  long t2=System.currentTimeMillis();
  System.out.println(t2-t1);
  testCalander(times);
  long t3=System.currentTimeMillis();
  System.out.println(t3-t2);
  testDate(times);
  long t4=System.currentTimeMillis();
  System.out.println(t4-t3);
 }
 
 public static void testSystem(long times){//use 188
  for(int i=0;i<times;i++){
   long currentTime=System.currentTimeMillis();
  }
 }
 public static void testCalander(long times){//use 6299
  for(int i=0;i<times;i++){
   long currentTime=Calendar.getInstance().getTimeInMillis();
  }
 }
 
 public static void testDate(long times){
  for(int i=0;i<times;i++){
   long currentTime=new Date().getTime();
  }
 }
}

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

Java代码  


187  
7032  
297 
187
7032
297
 
结果发现 System.currentTimeMillis() 这种方式速度最快
Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,看看源码会发现,Canlendar因为要处理时区问题会耗费很多的时间。
所以建议多使用第一种方式。
 
另,System 类中有很多高效的方法,比如,arrayCopy 之类的

JAVA获取时间戳,哪个更快

目前获取毫秒值大概有下面三种方法   Java代码   //方法 一   System.currentTimeMillis();    //方法 二   Calen...
  • chao2263263364
  • chao2263263364
  • 2014年11月19日 17:03
  • 236

JAVA获取时间戳,哪个更快

目前获取毫秒值大概有下面三种方法   Java代码   //方法 一   System.currentTimeMillis();    //方法 二   Calen...
  • zero_295813128
  • zero_295813128
  • 2016年07月20日 14:30
  • 2237

JAVA获取时间戳,哪个更快

目前获取毫秒值大概有下面三种方法   Java代码   //方法 一   System.currentTimeMillis();    //方法 二   Calen...
  • yangxi_001
  • yangxi_001
  • 2016年09月28日 12:25
  • 926

JAVA获取时间戳,哪个更快

原文地址:http://blog.csdn.net/zero_295813128/article/details/51967964 目前获取毫秒值大概有下面三种方法   ...
  • tanga842428
  • tanga842428
  • 2017年02月03日 11:05
  • 705

JAVA获取时间戳,哪个更快

JAVA获取时间戳,哪个更快
  • master_yao
  • master_yao
  • 2017年03月22日 12:57
  • 151

JAVA获取时间戳,哪个更快

目前获取毫秒值大概有下面三种方法 Java代码   //方法 一  System.currentTimeMillis();   //方法 二  Calendar.get...
  • CollapseToDespair
  • CollapseToDespair
  • 2017年04月25日 10:28
  • 231

Java进阶(十六)使用new Date()和System.currentTimeMillis()获取当前时间戳

Java进阶(十六)使用new Date()和System.currentTimeMillis()获取当前时间戳 标签: 系统时间戳 2015-11-16 16:02 14052人阅读 评...
  • ZhangSingle
  • ZhangSingle
  • 2017年04月27日 15:06
  • 616

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

目前获取毫秒值大概有下面三种方法   Java代码   //方法 一   System.currentTimeMillis();    //方法 二   Calen...
  • yongjian_luo
  • yongjian_luo
  • 2014年10月21日 14:56
  • 416

(转)获得每日,每周,每月的0点和24点的时间戳

转自:http://chenp1111.iteye.com/blog/744259 //获得当天0点时间 public static int getTimesmorning(){ Calenda...
  • f1024042400
  • f1024042400
  • 2016年03月08日 13:12
  • 2262

Java与Unix时间戳的相互转换

当从服务器获取数据的时候,有时候获取的数据中的时间在很多的情况下是时间戳类似于这样`1473048265`,当然,我们不可能将这些数据以时间戳的形式展示给用户,通常情况,是要对这个时间戳进行一系列的处...
  • YLBF_DEV
  • YLBF_DEV
  • 2016年09月05日 16:48
  • 18998
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转载:JAVA获取时间戳,哪个更快
举报原因:
原因补充:

(最多只允许输入30个字)