인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다.
public class App {
public static void main(String[] args) {
Instant instant = Instant.now();
System.out.println("instant = " + instant);
// 기준시 UTC, GMT : instant = 2023-05-10T04:25:14.824841500Z
ZoneId zone = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = instant.atZone(zone);
System.out.println(zonedDateTime);
// 2023-05-10T13:27:55.748094500+09:00[Asia/Seoul]
}
}
public class App {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println("now = " + now);
// now = 2023-05-10T13:36:30.178957600
// Local 시간이 나온다.
// 미국 서버에 배포한다면 미국 서버 시간이 찍히게 된다.
LocalDateTime anyDay = LocalDateTime.of(1955, Month.JULY, 15, 0, 0, 0);
// 설정도 가능하다.
ZonedDateTime nowInKorea = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));
// 특정 지역의 시간도 가져올 수 있다.
System.out.println(nowInKorea);
// 2023-05-10T13:41:22.696048200+09:00[Asia/Seoul]
}
}
public class App {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate thisYearBirthDay = LocalDate.of(2023, Month.MAY, 20);
Period period = Period.between(today, thisYearBirthDay);
System.out.println(period.getDays());
// 현재 5월 10일 print 10
Period until = today.until(thisYearBirthDay);
System.out.println(until.getDays());
// 현재 5월 10일 print 10
}
}
public class App {
public static void main(String[] args) {
Instant now = Instant.now();
Instant plus = now.plus(10, ChronoUnit.SECONDS);
Duration between = Duration.between(now, plus);
System.out.println(between.getSeconds()); // 10
}
}
public class App {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(now.format(format)); // 2023-05-10
LocalDate parse = LocalDate.parse("1988-06-12", format); // 1988-06-12
System.out.println(parse);
}
}
아래 사이트에 미리 정의되어있는 format이 존재하니 확인해서 필요한 format이 있다면 새로 만들지 말고 사용하면 됩니다.
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
public class App {
public static void main(String[] args) {
Date date = new Date();
Instant instant = date.toInstant();
Date newDate = Date.from(instant);
GregorianCalendar gregorianCalendar = new GregorianCalendar();
LocalDateTime localDateTime = gregorianCalendar.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
// localDateTime으로 변환이 가능하다.
}
}
public class App {
public static void main(String[] args) {
LocalDate now = LocalDate.now();
LocalDate localDate = now.plusDays(10);
// 새로운 인스턴스가 생기는 것이기 때문에 담은 값을 사용해야 한다.
Period until = now.until(localDate);
System.out.println(until.getDays()); // 10
}
}