코틀린에서는 java.time
패키지를 사용하여 날짜와 시간을 다룰 수 있습니다. 이 패키지에는 다양한 날짜 타입과 관련된 클래스와 함수가 포함되어 있습니다. 이번 블로그에서는 코틀린에서 자주 사용되는 날짜 타입 변환 함수들을 알아보겠습니다.
1. LocalDate <-> String
LocalDate
타입은 날짜를 표현하는 클래스입니다. 이를 문자열로 변환하기 위해서는 DateTimeFormatter
를 사용해야 합니다. 다음은 LocalDate
타입을 문자열로 변환하는 예시 코드입니다.
import java.time.LocalDate
import java.time.format.DateTimeFormatter
fun dateToString(date: LocalDate): String {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
return date.format(formatter)
}
ofPattern
메서드를 사용하여 원하는 포맷을 지정할 수 있습니다. 위 코드에서는 yyyy-MM-dd
형식으로 변환하였습니다.
문자열을 LocalDate
타입으로 변환하기 위해서는 parse
메서드를 사용해야 합니다. 다음은 문자열을 LocalDate
타입으로 변환하는 예시 코드입니다.
import java.time.LocalDate
import java.time.format.DateTimeFormatter
fun stringToDate(dateString: String): LocalDate {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
return LocalDate.parse(dateString, formatter)
}
2. LocalDateTime <-> String
LocalDateTime
타입은 날짜와 시간을 함께 표현하는 클래스입니다. DateTimeFormatter
를 사용하여 LocalDateTime
타입을 문자열로 변환하고, 문자열을 LocalDateTime
타입으로 변환할 수 있습니다. 예시 코드는 다음과 같습니다.
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun dateTimeToString(dateTime: LocalDateTime): String {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
return dateTime.format(formatter)
}
fun stringToDateTime(dateTimeString: String): LocalDateTime {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
return LocalDateTime.parse(dateTimeString, formatter)
}
3. Instant <-> String
Instant
타입은 UTC 기준으로 표현된 시간을 저장하는 클래스입니다. Instant
타입도 DateTimeFormatter
를 사용하여 문자열로 변환하고, 문자열을 Instant
타입으로 변환할 수 있습니다. 예시 코드는 다음과 같습니다.
import java.time.Instant
import java.time.format.DateTimeFormatter
fun instantToString(instant: Instant): String {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
return formatter.format(instant)
}
fun stringToInstant(instantString: String): Instant {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
return formatter.parse(instantString, Instant::from)
}
결론
코틀린에서 java.time
패키지를 사용하여 다양한 날짜 타입을 다룰 수 있습니다. LocalDate
, LocalDateTime
, Instant
타입을 문자열로 변환하거나, 문자열을 해당 타입으로 변환하기 위해서는 DateTimeFormatter
를 사용해야 합니다. 앞서 소개한 함수들을 활용하여 날짜 타입을 변환하는 작업을 쉽게 할 수 있습니다.