1.获取时间(JDK8)
// 获取日期
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
// 获取时间
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
// 获取日期和时间
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
获取时间戳(JDK8)
ong milli = Instant.now().toEpochMilli(); // 获取当前时间戳(精确到毫秒)
long second = Instant.now().getEpochSecond(); // 获取当前时间戳(精确到秒)
System.out.println(milli); // output:1565932435792
System.out.println(second); // output:1565932435
时间格式化(JDK8)
// 时间格式化①
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timeFormat = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(timeFormat); // output:2019-09-07 09:18:27
// 时间格式化②
String timeFormat2 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(timeFormat2); // output:2019-09-07 09:19:12
时间转换(JDK8)
String timeStr = "2019-10-10 06:06:06";
LocalDateTime dateTime = LocalDateTime.parse(timeStr,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(dateTime);
获取昨天此刻的时间(JDK8)
LocalDateTime today = LocalDateTime.now();
LocalDateTime yesterday = today.plusDays(-1);
System.out.println(yesterday);
常见的获取时间的三种方式(JDK8)
- new Date()
- Calendar.getInstance().getTime()
- LocalDateTime.now()
获取当前时间戳的几种方式(JDK8)
- System.currentTimeMillis()
- new Date().getTime()
- Calendar.getInstance().getTime().getTime()
- Instant.now().toEpochMilli()
- LocalDateTime.now().toInstant(ZoneOffset.of(“+8”)).toEpochMilli()
获取本月的最后一天
// 获取本月的最后一天(JDK 8 以前)
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(ca.getTime());
// 获取本月的最后一天(JDK 8)
LocalDate today = LocalDate.now();
System.out.println(today.with(TemporalAdjusters.lastDayOfMonth()));
如何比较两个时间(Date)的大小
- 获取两个时间的时间戳,得到两个 long 类型的变量,两个变量相减,通过结果的正负值来判断大小;
- 通过 Date 自带的 before()、after()、equals() 等方法比较,代码示例 date1.before(date2);
- 通过 compareTo() 方法比较,代码示例:date1.compareTo(date2),返回值 -1 表示前一个时间比后一个时间小,0 表示两个时间相等,1 表示前一个时间大于后一个时间。