Skip to content

Release v1.0.0

Choose a tag to compare

@VladimirTintera VladimirTintera released this 04 Jun 16:34
· 5 commits to main since this release

KMPTime v1.0.0 β€” Initial Release πŸš€

We are proud to announce the first official release of KMPTime, a lightweight, modular, and modern Kotlin Multiplatform date and time utility library. Built on top of kotlinx-datetime, KMPTime provides powerful formatting, locale representations, and context-aware wrappers.


Key Features

  • Multiplatform from Day One: Native support for a wide range of platforms including JVM, Android, JS (Browser), Wasm-JS (Browser), and Apple platforms (iOS, macOS, tvOS, watchOS).
  • Locale-Aware Formatting & Parsing: Simple yet flexible formatting and parsing capabilities for dates, times, and time zones using CLDR skeletons and patterns.
  • Context Receivers Integration: Fully utilizes Kotlin's Context Receivers to seamlessly pass time zones or locales down the call stack without cluttering function parameters.
  • Fully Documented & Tested: Includes complete API KDocs and comprehensive multiplatform test suites.

Module Structure

KMPTime is modularized so you only import what you need:

  1. eu.tintera.locale:locale
    Platform-independent representation and utilities for system and custom Locales.
  2. eu.tintera.time:time-core
    Core multiplatform date/time utilities, extension functions, and calculations.
  3. eu.tintera.time:time-format
    Locale-aware formatting and parsing utilities.
  4. eu.tintera.time:time-core-context
    Context-receiver wrappers for core operations (e.g. locale-aware and timezone-aware context operations).
  5. eu.tintera.time:time-format-context
    Context-receiver wrappers for formatting and parsing APIs.

Dependency Setup

Add the dependencies to your shared or platform-specific source sets in your build.gradle.kts:

kotlin {
    sourceSets {
        commonMain.dependencies {
            // Core library modules
            implementation("eu.tintera.locale:locale:1.0.0")
            implementation("eu.tintera.time:time-core:1.0.0")
            implementation("eu.tintera.time:time-format:1.0.0")

            // Context receivers wrappers (Optional)
            implementation("eu.tintera.time:time-core-context:1.0.0")
            implementation("eu.tintera.time:time-format-context:1.0.0")
        }
    }
}