美文网首页
java获取时间戳的几种方法及最优方法

java获取时间戳的几种方法及最优方法

作者: java大湿兄 | 来源:发表于2017-09-04 12:22 被阅读0次

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

    Java代码

  1. //方法 一

  2. System.currentTimeMillis();

  3. //方法 二

  4. Calendar.getInstance().getTimeInMillis();

  5. //方法 三

  6. new

  7. Date().getTime();

    //方法 一

    System.currentTimeMillis();

    //方法 二

    Calendar.getInstance().getTimeInMillis();

    //方法 三

    new Date().getTime();

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

    然后做了如下实验:

    Java代码

  8. import java.util.Calendar;

  9. import java.util.Date;

  10. public class TimeTest {

  11. private static long_TEN_THOUSAND=10000;

  12. public static void main(String[] args) {

  13. long times=1000*_TEN_THOUSAND;

  14. long t1=System.currentTimeMillis();

  15. testSystem(times);

  16. long t2=System.currentTimeMillis();

  17. System.out.println(t2-t1);

  18. testCalander(times);

  19. long t3=System.currentTimeMillis();

  20. System.out.println(t3-t2);

  21. testDate(times);

  22. long t4=System.currentTimeMillis();

  23. System.out.println(t4-t3);

  24. }

  25. public static void testSystem(long times){

  26. //use 188

    for(int i=0;i

    long currentTime=System.currentTimeMillis();

  27. }

  28. }

  29. public static void

  30. testCalander(long times){

    //use 6299

    for(int i=0;i

    long currentTime=Calendar.getInstance().getTimeInMillis();

    }

  31. }

  32. public static void testDate(long times){

    for(int i=0;i

    long currentTime=new Date().getTime();

  33. }

  34. }

  35. }

  36. 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

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

    Java代码

  37. 187

  38. 7032

  39. 297

  40. 187

    7032

    297

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

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

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

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

    学习Java的同学注意了!!!
    学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!

    相关文章

      网友评论

          本文标题:java获取时间戳的几种方法及最优方法

          本文链接:https://www.haomeiwen.com/subject/njfejxtx.html