原文链接: Class -- 04 -- Date类常用方法解析
这次主要整理下 Java 中 Date 类的常用方法
Date 类提供两个构造函数来实例化 Date 对象 (其余构造方法已经过时了)
Date()
Date(long milliseconds)
Date date = new Date(); // 打印Date对象 // Sat:表示周六 // Aug:表示八月 // GMT:格林威治标准时间 // GMT+08:00:东八区即标准北京时间 System.out.println(date); // Sat Aug 11 17:03:32 GMT+08:00 2018
getTime()
获取时间毫秒数
Date date = new Date(); System.out.println(date.getTime()); // 1533978518866
setTime(long milliseconds)
设置时间毫秒数
Date date = new Date(); date.setTime(100); System.out.println(date); // Thu Jan 01 08:00:00 GMT+08:00 1970
equals(Object obj)
用于比较两个时间是否相等
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-10 08:08:123"); Date date2 = sdf.parse("2018-08-10 08:08:123"); System.out.println(date1.equals(date2)); // true
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-10 08:08:123"); Date date2 = sdf.parse("2018-08-11 08:08:123"); System.out.println(date1.equals(date2)); // false
after(Date when)
校验目标日期是否在参数日期之后
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-10 08:08:123"); Date date2 = sdf.parse("2018-08-09 08:08:123"); System.out.println(date1.after(date2)); // true
before(Date when)
校验目标日期是否在参数日期之前
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-10 08:08:123"); Date date2 = sdf.parse("2018-08-09 08:08:123"); System.out.println(date1.before(date2)); // false
compareTo(Date anotherDate)
如果目标日期等于参数日期,则返回 0
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-10 08:08:123"); Date date2 = sdf.parse("2018-08-10 08:08:123"); System.out.println(date1.compareTo(date2)); // 0
如果目标日期在参数日期之后,则返回 1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-11 08:08:123"); Date date2 = sdf.parse("2018-08-10 08:08:123"); System.out.println(date1.compareTo(date2)); // 1
如果目标日期在参数日期之前,则返回 -1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2018-08-09 08:08:123"); Date date2 = sdf.parse("2018-08-10 08:08:123"); System.out.println(date1.compareTo(date2)); // -1
toInstant()
返回一条时间线上与此日期相同的一个点
Date date = new Date(); // Instant:java8的新特性,表示时间线中的一个特定时刻 Instant instant = date.toInstant(); // 标准时间,精确到纳秒 System.out.println(instant); // 2018-08-11T03:11:59.110Z // 将标准时间修改为北京时间,即+8小时 System.out.println(instant.plusMillis(TimeUnit.HOURS.toMillis(8))); // 2018-08-11T11:11:59.110Z // 北京时间,精确到毫秒 System.out.println(date); // Sat Aug 11 11:11:59 GMT+08:00 2018