转载: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获取时间戳,哪个更快

JAVA获取时间戳,哪个更快

原文地址:http://blog.csdn.net/zero_295813128/article/details/51967964 目前获取毫秒值大概有下面三种方法   ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

【java时间戳】时间戳转时间

import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; pu...

Python 获取时间戳

Python date time 时间戳

JS获取当前时间,时间与时间戳之间的转换

原文地址:http://blog.csdn.net/wzl505/article/details/52981219 获取当前时间 [html] view plain copy ...

java中获取时间戳的方法

在java开发过程中经常会遇到统计某一天或是某一个月的数据,因此常常需要获取截取数据的两个时间戳(比如统计今天的数据,则需要获取一个开始时间为今天零点以及一个结束时间为明天零点),然后根据数据相关的时...

Android获取时间戳,以及将时间戳转换为时间

实际开发中,服务端返回的时间一般是时间戳的格式。这时客户端就需要对时间戳做出处理,将时间戳转换为标准的时间格式。 直接上代码吧,这里不需要布局文件:package com.androidtimesta...

Android获取时间戳,以及将时间戳转换为时间

Android获取时间戳,以及将时间戳转换为时间

Android获取时间戳,以及将时间戳转换为时间

版权声明:本文为博主原创文章,未经博主允许不得转载。 实际开发中,服务端返回的时间一般是时间戳的格式。这时客户端就需要对时间戳做出处理,将时间戳转换为标准的时间格式。 打印效果图: ...

Java获取当前时间(转载)

有两种方法: 方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码: import java.util.*; impor...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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