반응형
LocalDateTime
날짜(LocalDate) + 시간(LocalTime) 정보를 함께 담는 불변 객체
“YYYY-MM-DDTHH:mm:ss” 형태의 로컬 날짜/시간을 표현
1. 생성 방법
val now = LocalDateTime.now()
val dt1 = LocalDateTime.of(2025, 12, 4, 14, 30)
val dt2 = LocalDateTime.of(LocalDate.of(2025, 12, 4), LocalTime.of(14, 30))
val parsed = LocalDateTime.parse("2025-12-04T14:30:00")
2. 값 읽기
val dateTime = LocalDateTime.of(2025, 12, 4, 14, 30)
println(dateTime.year) // 2025
println(dateTime.month) // DECEMBER
println(dateTime.monthValue) // 12
println(dateTime.dayOfMonth) // 4
println(dateTime.hour) // 14
println(dateTime.minute) // 30
println(dateTime.second) // 0
- LocalDate, LocalTime의 모든 정보에 접근할 수 있다.
3. 날짜/시간 연산
val dateTime= LocalDateTime.of(2025, 12, 31, 23, 30)
println(dateTime.plusDays(1)) // 2026-01-01T23:30
println(dateTime.plusHours(2)) // 2026-01-01T01:30
println(dateTime.plusMonths(2)) // 2026-02-28T23:30
- LocalDate + LocalTime 연산을 모두 지원한다.
4. 비교 연산
val dateTime1 = LocalDateTime.of(2025, 1, 1, 10, 0)
val dateTime2 = LocalDateTime.of(2025, 1, 1, 12, 0)
println(dateTime1.isBefore(dateTime2)) // true
println(dateTime1.isAfter(dateTime2)) // false
println(dateTime1.isEqual(dateTime2)) // falㅅ
- dateTime1 < dateTime2 와 같이 비교 연산자도 사용가능하다.
5. 날짜/시간 분리
val dateTime = LocalDateTime.of(2025, 12, 4, 14, 30)
val date = dateTime.toLocalDate() // LocalDate
val time = dateTime.toLocalTime() // LocalTime
6. LocalDateTime + Zone 정보
LocalDateTime은 “날짜 + 시간” 정보만 가지며 타임존이 없는 로컬 시간이다.
특정 지역의 실제 시각으로 변환하려면 ZoneId 를 적용해야한다.
val dateTime = LocalDateTime.of(2025, 12, 4, 14, 30)
val zdt = dateTime.atZone(ZoneId.of("Asia/Seoul"))
println(zdt) // 2025-12-04T14:30+09:00
- atZone(): LocalDateTime에 시간대(ZoneId) 를 적용해 LocalDateTime 를 생성한다.
✔ 타임존을 포함한 현재 시각 가져오기
val now= LocalDateTime.now(ZoneId.of("Asia/Seoul"))
특정 타임존 기준의 LocalDateTime을 얻고 싶을 때 사용한다.
반응형
'학습 기록 > kotlin' 카테고리의 다른 글
| [Kotlin] 동시성 프로그래밍 with Coroutine (0) | 2026.02.16 |
|---|---|
| [Kotlin] LocalDate/LocalTime/LocalDateTime <-> String 변환 (0) | 2025.12.04 |
| [Kotlin] LocalTime (java.time) (0) | 2025.12.04 |
| [Kotlin] LocalDate (java.time) (1) | 2025.12.04 |
| [Kotlin] groupBy, groupingBy (0) | 2025.12.03 |
