12장 날짜와 시간 api

Jasik·2021년 12월 14일
0

지역 날짜 (local date/time) / 구역 시간 (zoned time)
지역날짜에는 시간대 (time zone) 정보가 없다.

Local date / time

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

Zoned time

각 시간대는 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");
profile
가자~

0개의 댓글