- TOC {:toc}
java8 부터 지원하는 날짜 객체.
문자열로 입력된 날짜를 변환하기
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z");
LocalDateTime localDateTime = LocalDateTime.parse("Tue, 16 May 2017 14:32:09 +0900", formatter);
System.out.println(localDateTime);
날짜 변환하기 : to "java.util.Date"
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z");
LocalDateTime localDateTime = LocalDateTime.parse("Tue, 16 May 2017 14:32:09 +0900", formatter);
// 출력 결과 : Tue May 16 14:32:09 KST 2017
System.out.println(Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()));
날짜 비교하기
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z");
LocalDateTime localDateTime = LocalDateTime.parse("Tue, 16 May 2017 14:32:09 +0900", formatter);
LocalDateTime localDateTime2 = LocalDateTime.parse("Mon, 30 Jul 2018 21:32:09 +0900", formatter);
if (localDateTime.isBefore(localDateTime2)) {
System.out.println("Before");
} else if (localDateTime.isAfter(localDateTime2)) {
System.out.println("After");
} else if (localDateTime.equals(localDateTime2)) {
System.out.println("Equal");
}
남은 시간 계산
ChronoUnit
“년, 월, 일, 시, 분, 초 등”에 대한 단위를 표현하기 위한 클래스
System.out.println("남은 시간 : "
+ localDate.until(localDate2, ChronoUnit.YEARS) + "년 "
+ localDate.until(localDate2, ChronoUnit.MONTHS) + "개월 "
+ localDate.until(localDate2, ChronoUnit.DAYS) + "일 "
+ localDate.until(localDate2, ChronoUnit.HOURS) + "시간 "
+ localDate.until(localDate2, ChronoUnit.MINUTES) + "분 "
+ localDate.until(localDate2, ChronoUnit.SECONDS) + "초 ");
Period
“년, 월, 일”로 두 날짜 사이의 기간을 표현
Period period = Period.between(localDateTime.toLocalDate(), localDateTime2.toLocalDate());
System.out.println("남은 기간 : "
+ period.getYears() + "년 "
+ period.getMonths() + "개월 "
+ period.getDays() + "일 ");
Duration
“일, 시, 분, 초”로 두 시간의 차이를 표현
Duration duration = Duration.between(localDateTime.toLocalTime(), localDateTime2.toLocalTime());
System.out.println("남은 초 : " + duration.getSeconds());