지역 날짜 (local date/time) / 구역 시간 (zoned time)
지역날짜에는 시간대 (time zone) 정보가 없다.
LocalDate : 년 월 일
LocalDate today = LocalDate.now();
LocalDate aDay = LocalDate.of(1990, Month.JANUARY, 11);
LocalDate.of(2021, 1, 1).plusDays(3);
LocalDate.of(2021, 1, 1).plusYears(1); // 윤년 포함 계산
indepencenceDay.until(christmas, ChronoUnit.DAYS); // 174일 리턴
LocalDate.of(2021, 12, 14).getDayOfWeek(); // DayOfWeek.TUESDAY 리턴
LocalTime,
LocalDateTime
각 시간대는 America/New_York, Europe/Berlin과 같은 ID가 있다.
ZonedDateTime.of(year, month, day, hour, minute, second, nano, zoneId);
ZonedDateTime.of(
LocalDate.of(year, month, day),
LocalTime.of(hour, minute)
ZoneId.of("Europe/Berlin")
);
DateTimeFormatter 클래스. 날짜/시간 값을 출력하는 서식 지정자(formatter) 세 종류
미리 정의된 표준 서식 지정자
BASIC_ISO_DATE, ISO_LOCAL_DATE_TIME, ISO_ZONED_DATE_TIME, ...
로케일 종속 서식 지정자
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
String formattedString = formatter.format(localDateTimeInstance);
// July 16, 1969 9:32:00 AM EDT
String formattedString = formatter.withLocale(Locale.FRENCH).format(localDateTimeInstance);
// 16 juillet 1969 09:32:00 AM EDT
formatter = DateTimeFormatter.ofPattern("E yyyy-MM-dd HH:mm");