currentTimeMillis,getTimeInMillis与getTime获取当前时间戳耗时比较
来源:互联网 发布:php aes解密后有乱码 编辑:程序博客网 时间:2024/05/18 23:26
在java中,生成当前的时间戳大致上有这么几种方法,分别是:
一、System.currentTimeMillis(),它属于java.lang.System;
二、Calendar.getInstance().getTimeInMillis(),它属于java.util.Calendar;
三、new Date().getTime(),它属于java.util.Date;
下面是这三种方法各自运行100000所消耗的时间.
package net.sahv.yrsy.test2;import java.util.Calendar;import java.util.Date;public class testTime {public static void main(String[] args) {//方法一long startMillis=System.currentTimeMillis();for(int i=0;i<100000;i++){System.currentTimeMillis();}long endMillis=System.currentTimeMillis();long spendMillis=endMillis-startMillis;System.out.println("currentTimeMillis方法所消耗的时间:"+spendMillis);//方法二long startTimeInMillis=Calendar.getInstance().getTimeInMillis();for(int i=0;i<100000;i++){Calendar.getInstance().getTimeInMillis();}long endTimeInMillis=Calendar.getInstance().getTimeInMillis();long spendTimeInMillis=endTimeInMillis-startTimeInMillis;System.out.println("Calendar中的getTime()方法所消耗的时间:"+spendTimeInMillis);//方法三long startGetTime=new Date().getTime();for(int i=0;i<100000;i++){new Date().getTime();}long endGetTime=new Date().getTime();long spendGetTime=endGetTime-startGetTime;System.out.println("Date中的getTime方法所消耗的时间:"+spendGetTime);}}
currentTimeMillis方法所消耗的时间:2Calendar中的getTime()方法所消耗的时间:108Date中的getTime方法所消耗的时间:6
通过上述比较,以运行100000为例,运行速度上currentTimeMillis>getTime>getTimeInMillis.
所以说在生成当前时间戳上,我建议大家采用currentTimeMillis方法,因为该方法运行速度最快.而getTime方法次之,通过查看源代码,new Date的源码中是这样写的:
public Date() { this(System.currentTimeMillis()); }
也就是说new Date 方法其实也是调用的currentTimeMillis,但由于其又调用了getTime方法,所以说在时间的消耗上比currentTimeMillis要长一点是很容易理解的,毕竟走了一个将date型数据到long型的数据转换.而getTimeInMillis方法在执行前总是先装载Calendar,也就是说执行Calendar.getInstance()方法,在装载的过程中消耗了大量的时间,因而消耗的时间最长,所以说在生成当前的时间戳的方法上不建议采用getTimeInMillis.
0 0
- currentTimeMillis,getTimeInMillis与getTime获取当前时间戳耗时比较
- System.currentTimeMillis,getTimeInMillis与new Date().getTime获取当前时间戳耗时比较
- new Date()和System.currentTimeMillis()获取当前时间戳
- JAVA获取当前系统时间System.currentTimeMillis()
- JAVA获取当前系统时间System.currentTimeMillis()
- JAVA获取当前系统时间System.currentTimeMillis()
- System.currentTimeMillis() :JAVA获取当前时间
- Java获取当前系统时间System.currentTimeMillis()
- JAVA获取当前系统时间System.currentTimeMillis()
- JAVA获取当前系统时间System.currentTimeMillis()
- JAVA获取当前系统时间System.currentTimeMillis()
- 【java】获取当前时间currentTimeMillis()
- date.gettime()与时间的获取
- JS获取时间getTime()
- js获取当前时间戳与日期比较
- java使用new Date()和System.currentTimeMillis()获取当前时间戳
- Java使用new Date()和System.currentTimeMillis()获取当前时间戳
- java使用new Date()和System.currentTimeMillis()获取当前时间戳
- 前后端交互问题总结--JAVA/Servlet + HTML/Jquery/Ajax
- 团体程序设计天梯赛-练习集 L3-008. 喊山 bfs 解题报告
- 图(广度优先搜索)515. Find Largest Value in Each Tree Row[Middle]
- SpringMVC之DispatcherServlet
- Freeswitch内核之事件类型
- currentTimeMillis,getTimeInMillis与getTime获取当前时间戳耗时比较
- 第9章(1) 接口和抽象类
- Spring注解在Junit中的使用问题
- Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
- 【Unity优化】构建一个拒绝GC的Lis
- vim grep配置及使用
- JS实现顺时针打印数组
- 2017/3/18 CSP题库的一道不算很难的题 因为自己没认真看题被坑惨..
- 使用Vim