LocalDate 사용해보기
날짜 직접 지정하기
LocalDate.of(2022, 8, 25) // 2022-08-25(년, 월, 일을 직접 지정하여 가져오기)
LocalDate.parse("2022-08-25") // 2022-08-25(문자열 형식의 날짜를 LocalDate형식으로 변환하기)
LocalDate.now() // 2022-08-25(오늘 날짜 가져오기)
날짜에서 필요한 값 가져오기
val now = LocalDate.now() // 2022-08-25(오늘날짜)
println( now.year ) // 2022(년 가져오기)
println( now.month ) // AUGUST(월 가져오기 - 영어로 표현)
println( now.monthValue ) // 8(월 가져오기 - 숫자로 표현)
println( now.dayOfYear ) // 237(1년 중 몇 번째 일인지)
println( now.dayOfMonth ) // 25(1달 중 몇 번째 일인지)
println( now.dayOfWeek ) // THURSDAY(일주일중 언제인지)
날짜 변경하기
val now = LocalDate.now() // 2022-08-25(오늘날짜)
println( now.withYear(2023) ) // 2023-08-25(년도 변경)
println( now.withMonth(10) ) // 2022-10-25(월 변경)
println( now.withDayOfMonth(30) ) // 2022-08-30(일 변경)
println( now.withYear(2023).withMonth(10).withDayOfMonth(30) ) // 2023-10-30(체이닝으로 한 번에 변경할 수 있다.)
println( now.minusYears(1) ) // 2021-08-25(현재년도에서 1년을 뺀 값)
println( now.minusMonths(1) ) // 2022-07-25(현재월에서 1달을 뺀 값)
println( now.minusWeeks(1) ) // 2022-08-18(현재일에서 1주일(7일)을 뺀 값)
println( now.minusDays(1) ) // 2022-08-24(현재일에서 1일을 뺀 값)
LocalDate는 불변객체이기 때문에 한 번 할당된 값을 변경할 수 없다. 날짜를 변경하는 함수를 사용하면 내부의 값이 바뀌는 것이 아니라 새로운 객체를 생성해서 값을 할당하는 방식으로 동작한다.
minus로 날짜를 뺄 수 있듯이 plus를 이용해서 동일하게 날짜를 추가할 수도 있다.
날짜 포메팅
println( LocalDate.parse("2022-08-25", DateTimeFormatter.ofPattern("yyyy-MM-dd")) ) // 2022-08-25
val ofPattern = DateTimeFormatter.ofPattern("yyyy-MM-dd")
println( LocalDate.parse("2022-08-25", ofPattern) ) // 2022-08-25
문자열로 된 날짜를 LocalDate로 변환하는 작업이다. 문자열로 된 날짜의 형식과 패턴으로 지정한 형태가 같아야 한다.
위의 방식은 패턴을 한 번에 지정해서 변환하는 작업이고 이와 다르게 패턴을 변수로 받아서 변환할 때마다 패턴 변수를 사용해서 변환할 수 있다.
'Kotlin' 카테고리의 다른 글
[코틀린] 함수 사용하기 (0) | 2022.08.30 |
---|