본문 바로가기

JAVA

자바 8 인 액션 1일차

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