目录
1.1、时间进制
2.1、Data
4.1、简单示例
前言
平常会遇到很多的日期格式,各种各样的,什么UTC、GMT、毫秒级、微秒级、纳秒级....这些格式,怎么创建这些格式很简单,但是,怎么将这几种格式进行相互转换,是一个问题!!!!所以我专门写一篇博客,做一下笔记吧,反正经常会用到。
1、获取当前时间的时间戳
1.1、时间进制
1秒=1000毫秒
1秒=1000000微秒(1毫秒=1000微秒)
1秒=1000000000纳秒(1微秒=1000纳秒) ( 1毫秒=1000000纳秒)
要获得秒级时间戳,可以使用毫秒级时间戳除以1000即可。
1.2、获取毫秒时间戳
获取毫秒时间戳的方式比较多,一般都是用System.currentTimeMillis()。
@Test
public void testTimeStamp() {
// 获得当前时间的时间戳(13位),单位是毫秒
// 方式1
long timeStamp1 = System.currentTimeMillis();
// 方式2
Date date = new Date();
long timeStamp2 = date.getTime();
// 方式3
Calendar calendar = Calendar.getInstance();
long timeStamp3 = calendar.getTimeInMillis();
// 方法4
Clock clock = Clock.systemUTC();
long timeStamp4 = clock.millis();
// 打印时间戳示例
String str = String.format("%s %s %s %s", timeStamp1, timeStamp2, timeStamp3, timeStamp4);
System.out.println(str);
// 1567942696718 1567942696718 1567942696728 1567942696731
}
1.3、获取纳秒时间戳
纳秒时间戳,好像用的不是特别多
System.out.println(System.nanoTime());
2、java.util包
2.1、Date
之所以使用java.util.Date指明Date类的包为java.util,是因为java.sql包中也有一个Date类。
Date类的输出格式:Sun Sep 08 17:49:50 CST 2019
Date类有很多方法都被废弃了,包括构造方法,所以常用的使用方法如下:
@Test
public void testDete() {
// 利用当前时间戳创建的Date实例,底层调用System.currentTimeMillis()
Date date1 = new Date();
System.out.println(date1); // Sun Sep 08 17:49:50 CST 2019
// 利用一个时间戳来创建Date对象(时间戳转Date对象)
long timeStamp = System.currentTimeMillis() - 100; // 当前时间的100秒前
Date date2 = new Date(timeStamp);
// Date的compareTo,用于比较两个时间的先后
int flag = date1.compareTo(date2);
// date1.compareTo(date2)返回值分三种情况
// flag = 0, 两个时间相同(时间戳相同)
// flag = 1, date1 要晚于 date2(date1的时