时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。
1.时间戳转date
/**
* 时间戳转date
*/
//(10位数),以秒为单位进行转化
long time1 = 1527767665;
String result1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time1*1000);
System.out.println("10位数的时间戳(秒)-----》Date:"+result1);
Date date1 = new Date(time1*1000);
System.out.println(date1);
//(13位数),以毫秒为单位进行转化
double time2 = 1515730332000d;
String result2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time2);
System.out.println("13位数的时间戳(毫秒)--->Date:"+result2);
System.out.println("---------------------------------------------");
2.date转时间戳
/**
* date转时间戳
*/
//获取指定时间的时间戳,除以1000说明得到的时间戳是秒级别的(10位)
long time = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse("2019-10-28 20:02:50",new ParsePosition(0)).getTime()/1000;
//获取时间戳
long now1 = System.currentTimeMillis();
long now2 = new Date().getTime();
System.out.println("获取指定时间的时间戳"+time);
System.out.println("当前时间戳:"+now1);
System.out.println("当前时间戳:"+now2);
System.out.println("---------------------------------------------");
3.格式化Date(使用两种方式进行转化)
- 方式一:使用common-lang包下面的DateFormatUtils类
首先你得使用maven导入依赖,或者下载jar包,但是下载jar包麻烦一点,推荐创建项目使用pom文件导入。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
然后就可以使用里面的DateFormatUtils类,如下
/**
*格式化Date
*/
//使用common-lang包下面的DateFormatUtils类
//必须导包才可以使用
String format1 = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
String format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
System.out.println("格式化时间1:"+format1);
System.out.println("格式化时间2:"+format2);
System.out.println("---------------------------------------------");
上面所示的还有常规的方法提供给大家进行参考
4,给时间加上指定时长,这里面也需要导入依赖,跟上面的依赖一样,这个用处很多的
5,得到指定时间节点的日期时间
6,判断两个时间点是不是同一天
在这里我用了上面的时间,所以返回值是false