LocalDate , LocalTime , Instant , Duration , Period
LocalDate 와 LocalTime 사용
LocalDate 인스턴스는 년도,달,요일 등을 반환하는 메소드를 제공한다.
LocalDate today = LocalDate.now();
LocalDate date = LocalDate.of(2021, 8, 2); => 2021-08-02
int year = date.getYear(); => 2021
Month month = date.getMonth(); => august
int day = date.getDayOfMonth(); => 2
DayOfWeek dow = date.getDayOfWeek(); => Monday
int len = date.lengthOfMonth(); => 31 (8월의 일수)
boolean leap = date.isLeapYear(); => false (윤년이 아님)
LocalTime time = LocalTime.of(18, 25, 40); => 18:25:40
int hour = time.getHour();
int minute = time.getMinute();
int second = time.getSecond();
LocalDateTime은 LocalDate 와 LocalTime을 쌍으로 갖는 복합 클래스이다.
LocalDateTime date1 = LocalDateTime.of(2021, Month.June, 25, 16, 25, 20);
LocalDate dt1 = date1.toLocalDate(); => 2021-06-25
LocalTime tm1 = date1.toLocalTime(); => 16:25:20
절대적인 방식으로 LocalDate의 속성 바꾸기
LocalDate dt1 = LocalDate.of(2021, 6, 25); => 2021-06-25
LocalDate dt2 = dt1.withYear(2020); => 2020-06-25
LocalDate dt3 = dt1.withDayOfMonth(15); => 2021-06-15
LocalDate dt4 = dt1.with(ChronoField.MONTH_OF_YEAR, 12); => 2021-12-25
상대적인 방식으로 LocalDate 속성 바꾸기
LocalDate date1 = LocalDate.of(2021, 6, 18); => 2021-06-18
LocalDate date2 = date1.plusWeeks(1); => 2021-06-25
LocalDate date3 = date1.minusYears(2); => 2019-06-18
LocalDate date4 = date1.plus(3, ChronoUnit.MONTHS); => 2021-09-18
날짜와 시간 객체 출력과 파싱
java.time.format이 새로 추가되었다.
DateTimeFormatter를 이용해서 날짜나 시간을 특정 형식의 문자열로 만들 수 있다.
LocalDate date = LocalDate.of(2021, 8, 21);
String str1 = date.format(DateTimeFormatter.BASIC_ISO_DATE); => 20210821
String str2 = date.format(DateTimeFormatter.ISO_LOCAL_DATE); => 2021-08-21
메소드 parse를 이용하면 문자열을 날짜 객체로 만들 수 있다.
LocalDate date1 = LocalDate.parse("20210821", DateTimeFormatter.BASIC_ISO_DATE);
LocalDate date1 = LocalDate.parse("20210821", DateTimeFormatter.ISO_LOCAL_DATE);
DateTimeFormatter 클래스는 특정 패턴으로 포매터를 만들 수 있는 메소드도 제공한다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date1 = LocalDate.of(2021, 8, 10);
String formattedDate = date1.format(formatter);
LocalDate date2 = LocalDate.parse(formattedDate, formatter);
'JAVA' 카테고리의 다른 글
자바 TimerTask (0) | 2023.12.21 |
---|---|
Optional이란? (0) | 2023.04.21 |
자바의 정석 7일차 (0) | 2021.08.02 |
자바의 정석 공부 4일차 (0) | 2021.07.14 |
JAVA의 정석 공부 3일차 (0) | 2021.07.14 |