java-time-extensions
는 java.time.*
패키지를 확장하여 Kotlin 사용자에게 더 편리한 기능을 제공합니다.
이 라이브러리는 Kotlin 개발자들이 java.time.*
API를 사용할 때 자주 필요한 기능을 쉽게 사용할 수 있도록 도와줍니다.
사용 예시는 Wiki를 참조하세요.
java-time-extensions
는 Kotlin 사용자들에게 java.time.*
패키지의 다양한 클래스(LocalDate
, LocalTime
, LocalDateTime
등)를
확장하여 더욱 편리하게 사용할 수 있도록 돕는 라이브러리입니다.
이 라이브러리는 확장 함수와 확장 프로퍼티를 통해 기존 API를 간편하게 확장하여 사용할 수 있는 기능을 제공합니다.
주요 기능들은 다음과 같습니다:
- 다양한 날짜 및 시간 타입 확장:
java.time.*
패키지의 여러 클래스에 대한 유용한 확장 기능을 제공합니다. - 편리한 인스턴스 생성:
String
,Int
,Long
등의 다양한 타입으로부터 쉽게 인스턴스를 생성할 수 있습니다. - 유연한 타입 변환: 날짜 및 시간 인스턴스를 다른 타입으로 쉽게 변환할 수 있도록 도와줍니다.
- Safety 타입 변환: 다양한 타입 변환 함수들은 예외를 던지지 않고
null
을 반환할 수 있도록 지원합니다. - 직관적인 중위 함수:
LocalDate
와LocalTime
을 결합하여LocalDateTime
을 만들거나, 두LocalDate
인스턴스 간의 차이를 계산하는 등, 기존 메서드를 사용하는 것보다 직관적인 문법을 제공합니다.
java-time-extensions
는 생성, 기간, 연산, 분해, 결합, 비교, 포맷팅을 위한 다양한 확장 함수를 제공합니다.
java-time-extensions
는 다양한 타입으로부터 java.time.*
인스턴스를 생성할 수 있는 확장 함수를 제공합니다.
val date: LocalDate = "2021-01-01".toLocalDate() // 2021-01-01
java-time-extensions
는 기간 개념을 다루는 확장 기능을 제공합니다.
val period: Pariod = 1.days // P1D
java-time-extensions
는 날짜 및 시간 인스턴스의 연산을 위해 확장 기능을 제공합니다.
val date: LocalDate = "2021-01-01".toLocalDate() + 1.days // 2021-01-02
java-time-extensions
는 날짜 및 시간 인스턴스를 분해하는 확장 기능을 제공합니다.
val year: Year = "2021-01-01".toLocalDate().toYear() // 2021
java-time-extensions
는 날짜 및 시간 인스턴스를 결합하는 확장 기능을 제공합니다.
val dateTime: LocalDateTime = "2021-01-01".toLocalDate() at "12:00".toLocalTime() // 2021-01-01T12:00
java-time-extensions
는 날짜 및 시간 인스턴스를 비교하는 확장 기능을 제공합니다.
val period: Period = "2021-01-01".toLocalDate() betweeb "2021-02-01".toLocalDate() // P1M
java-time-extensions
는 날짜 및 시간 인스턴스를 포맷팅하는 확장 기능을 제공합니다.
val string: String = "2021-01-01".toLocalDate().toString("yyyyMMdd") // 20210101
kotlinx-datetime
은 시간대를 포함한 civil time (상용시) 을 다루는데 특화된 라이브러리입니다.
예를 들어, kotlinx - datetime은 모든 시간 객체에 시간대 정보를 포함시키며,
이를 통해 로컬 시간대 (예: UTC + 9)와 관련된 작업을 쉽게 처리할 수 있습니다.
이 라이브러리는 시간대 정보가 필요하지 않은 단순한 연산 (예: 한 달 더하기)도 지원합니다.
반면, java-time-extensions
는 java.time.*
패키지를 기반으로 하여,
기존의 API를 더 편리하게 사용할 수 있도록 돕는 확장 기능을 제공합니다.
kotlinx-datetime
처럼 새로운 엔티티나 시간대에 대한 복잡한 처리를 추가하지는 않습니다.
대신, java.time.*
패키지를 사용하는 Kotlin 사용자들이 더 쉽게 날짜와 시간을 다룰 수 있도록 하는 것이 이 라이브러리의 주된 목적입니다.
따라서 java-time-extensions
는 kotlinx-datetime
을 대체하기 위한 것이 아니라,
이미 java.time.*
을 사용하고 있는 Kotlin 개발자들에게 더 나은 개발 경험을 제공 하는 데 초점을 맞추고 있습니다.
repositories {
mavenCentral()
}
dependencies {
implementation 'io.github.harryjhin:java-time-extensions:$version'
}
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.harryjhin:java-time-extensions:$version")
}
라이센스 권한 및 제한사항은 LICENSE 파일을 참조하세요 (MIT).