包括獲取當前時間,指定特定時間。進行時間的加減等
LocalDateTime localDateTime3 = LocalDateTime.now(); LocalDate.now(); LocalTime.now(); localDateTime3.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); LocalDateTime localDateTime4 = localDateTime3.minus(23,ChronoUnit.MONTHS); localDateTime4.atZone(ZoneId.systemDefault()); localDateTime4 = localDateTime4.withHour(3); localDateTime4 = localDateTime4.withYear(2016); localDateTime4 = localDateTime4.with(ChronoField.MONTH_OF_YEAR,3)
間隔計算
使用Duration進行 day,hour,minute,second等的計算
使用Period進行Year,Month的計算
Duration duration = Duration.between(localDateTime,localDateTime4); duration.toDays(); duration.toHours(); duration.toMinutes(); Period period2 = Period.between(localDateTime.toLocalDate(),localDateTime4.toLocalDate()); period2.getYears(); period2.getMonths(); period2.toTotalMonths();
與Date的轉化,format為String
Date date = Date.from(localDateTime4.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault()); localDateTime3.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
根據需求需要取得當天的零點
-
LocalDateTime today_start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); //當天零點
-
String td_st_str =
today_start.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
獲取當天結束時間
LocalDateTime today_end = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);//當天零點
LocalDateTime與String日期互相轉換
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.now();
String localTime = df.format(time);
LocalDateTime ldt = LocalDateTime.parse("2017-09-28 17:07:05",df);
System.out.println("LocalDateTime轉成String類型的時間:"+localTime);
System.out.println("String類型的時間轉成LocalDateTime:"+ldt);
控制台結果:
LocalDateTime轉成String類型的時間:2017-09-30 10:40:06
String類型的時間轉成LocalDateTime:2017-09-28T17:07:05
通過localdatetime獲取long型毫秒時間
Long newSecond1 = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();