1.LocalDate轉Date
LocalDate nowLocalDate = LocalDate.now();
Date date = Date.from(nowLocalDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
2.LocalDateTime轉Date
LocalDateTime localDateTime = LocalDateTime.now();
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
3.Date轉LocalDateTime(LocalDate)
Date date = new Date();
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
4.LocalDate轉時間戳
LocalDate localDate = LocalDate.now();
long timestamp = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
5.LocalDateTime轉時間戳
LocalDateTime localDateTime = LocalDateTime.now();
long timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
//獲取秒數
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
//獲取毫秒數
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
6.時間戳轉LocalDateTime(LocalDate)
long timestamp = System.currentTimeMillis();
LocalDate localDate = Instant.ofEpochMilli(timestamp).atZone(ZoneId.systemDefault()).toLocalDate();
LocalDateTime localDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneId.systemDefault()).toLocalDateTime();
7.LocalDateTime與String互轉
//時間轉字符串格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
String dateTime = LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);
//字符串轉時間
String dateTimeStr = "2018-07-28 14:11:15";
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, df);
8.LocalDate計算相隔天數
// 開始日期
LocalDate startDate = LocalDate.parse("2020-05-08");
// 結束日期
LocalDate endDate = LocalDate.parse("2020-06-09");
// 剩余天數
int lastDayInt = (int) (endDate.toEpochDay() - startDate.toEpochDay());
另外可以使用DAYS.between(day0, day1)就可以計算出相應的天數。
9.獲取月初與月末
//獲取月初
LocalDate monthOfFirstDate=LocalDate.parse(count_date,
DateTimeFormatter.ofPattern("yyyy-MM-dd")).with(TemporalAdjusters.firstDayOfMonth());
//獲取月末
LocalDate monthOfLastDate=LocalDate.parse(count_date,
DateTimeFormatter.ofPattern("yyyy-MM-dd")).with(TemporalAdjusters.lastDayOfMonth())