java获取时间戳和当前时间_chenglongan5604的博客-程序员宅基地

技术标签: java  

java中的时间戳是毫秒为单位,13位;unix的时间戳是秒,10位

  • 一、java中获取时间戳 
//方法 一
System.currentTimeMillis(); 
//方法 二
Calendar.getInstance().getTimeInMillis(); 
//方法 三
new Date().getTime();

 三种方法性能比较:

每种方法运行1亿次

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeStamp {
	private long count = 10000*10000;

	public static void main(String[] args){
	TimeStamp timeStamp = new TimeStamp();
	System.out.println(System.currentTimeMillis());
	System.out.println(Calendar.getInstance().getTimeInMillis());
	System.out.println(new Date().getTime());
	System.out.println("==============================");
	long t1= System.currentTimeMillis();
	timeStamp.test1();
	long t2 = System.currentTimeMillis();
	System.out.println(t2-t1);
	timeStamp.test2();
	long t3 = System.currentTimeMillis();
	System.out.println(t3-t2);
	timeStamp.test3();
	long t4 = System.currentTimeMillis();
	System.out.println(t4-t3);
    System.out.println("=======================");
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss"); 
    System.out.println(format.format(new Date()));
	}

	public void test1() {
		for (int i = 0; i < count; i++) {
			long current = System.currentTimeMillis();//1349
		}
	}

	public void test2() {
		for (int i = 0; i < count; i++) {
            long current = Calendar.getInstance().getTimeInMillis();//21224
		}
	}
	
	public void test3(){
		for(int i = 0;i<count;i++){
			long current = new Date().getTime();//1353
		}
	}

}

结果如下:

1499262134642
1499262134651
1499262134676
==============================
1349
21224
1353
=======================
2017-07-05 09:07:38

 

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

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

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

  • 二、java中获取当前时间
//方法一
Calendar.getInstance().getTime()
//方法二
new Date()

 

import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  
  
public class DateTest {  
  
    public static void main(String[] args) throws ParseException {  
        Calendar now = Calendar.getInstance();  
        System.out.println("年: " + now.get(Calendar.YEAR));  
        System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");  
        System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));  
        System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));  
        System.out.println("分: " + now.get(Calendar.MINUTE));  
        System.out.println("秒: " + now.get(Calendar.SECOND));  
        System.out.println("当前时间毫秒数:" + now.getTimeInMillis());  
        System.out.println(now.getTime());  
  
        Date d = new Date();  
        System.out.println(d);  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        String dateNowStr = sdf.format(d);  
        System.out.println("格式化后的日期:" + dateNowStr);  
          
        String str = "2012-1-13 17:26:33";  //要跟上面sdf定义的格式一样  
        Date today = sdf.parse(str);  
        System.out.println("字符串转成日期:" + today);  
    }  
}  

输出结果:

年: 2017
月: 7
日: 5
时: 23
分: 52
秒: 33
当前时间毫秒数:1499269953267
Wed Jul 05 23:52:33 CST 2017
Wed Jul 05 23:52:33 CST 2017
格式化后的日期:2017-07-05 23:52:33
字符串转成日期:Fri Jan 13 17:26:33 CST 2012

转载于:https://my.oschina.net/u/3422045/blog/1173329

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chenglongan5604/article/details/100988883

智能推荐

RTKLIB源码在VS2013中配置步骤_rtklib.h vs2013-程序员宅基地

一、RTKLIB背景由日本东京海洋大学开发,其主要功能如下:支持标准的GPS、GLONASS、QZSS和SBAS的为精确定位算法(目前此版本不支持Galileo系统)支持多种动态、静态卫星定位方式(单点定位、DGPS、载波相位动态差分定位RTK、静态、移动基站、PPP)支持全球定位导航系统的多种标准格式和协议。打开下载网页:GitHub - tomojitakasu/RTKLIB at rtklib_2.4.3进行clone or download,下载到当地文件夹,找到子文件夹src,里面_rtklib.h vs2013

js px 转rem_js 实现rem与px互相转换-程序员宅基地

<script>(function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function() { var clientWidth..._js 实现rem与px互相转换

Python3中的 Filter的改变_df.content.values.tolist-程序员宅基地

在python3中,filter处理之后,变成了一个可迭代对象,解决办法有2中:① 切成python2② 在filter外面套一层listdf = df.dropna()lines=df.content.values.tolist()sentences=[]for line in lines: try: segs=jieba.lcut(line) se..._df.content.values.tolist

java导航栏母版页_母版页导航栏选中解决方案-程序员宅基地

html代码:首页我要卖车我要买车直营网点会员专区走近安美途人员招聘联系我们js代码:var ah = document.getElementById('nav_content').getElementsByTagName('a');for (i = 0; i < ah.length; i++) {if (window.location.href.indexOf(ah[i]) >= 0...

随便推点

Java基础——异常及处理方法_java语言编写除法运算方法,发生异常时用tostring打印出来-程序员宅基地

什么是异常?让我们先运行一段代码来理解class Demo{ int chuFa(int x,int y)//这是一个除法运算 { return x/y; }}public class ExceptionDemo { public static v_java语言编写除法运算方法,发生异常时用tostring打印出来

CS61B的入门必备的排坑手册-程序员宅基地

世界计算机顶尖学校的王牌入门课(主要用java讲数据结构)_cs61b

CListBox实现list行上移下移_clistbox下拉到底-程序员宅基地

1.函数 // 获取移动前的顺序和选中状态 void GetAllTypeNameAndCheckStatus(std::map&lt;CString, int&gt;&amp; mapTypeNameCheckStatus); // 设置移动后的各类型选中状态(确保与移动前保持一致) void SetAllTypeNameAndCheckStatus(std:......_clistbox下拉到底

armbian清理_N1盒子armbian/ubuntu/linux系统修改日志输出到内存-程序员宅基地

N1盒子的存储设备是emmc,为了延长emmc的使用寿命尽可能的将读写文件在内存中完成。修改systemd journald日志存放目录为内存,也就是/run/log目录,限制最大使用内存空间64MB:sed -i 's/#Storage=auto/Storage=volatile/' /etc/systemd/journald.confsed -i 's/#RuntimeMaxUse=/Runt...

如何读取leetcode中的二维数组-程序员宅基地

leetcoe中二维数组的输入为如下形式,在本地测试的时候读取很不方便,简单写了个函数封装了读取的方法[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“5”,".",".","."],[".",“9”,“8”,".",".",".",".",“6”,"."],[“8”,".",".",".",“6”,".",".",".",“3”],[“4”,".",".",“8”,".",“3”,".",".",“1”],[“7”,"