Island Time Serialization Extensions

Serializers for use with the kotlinx.serialization library

License

License

Categories

Categories

Data Serialization Data Formats
GroupId

GroupId

io.islandtime
ArtifactId

ArtifactId

serialization-extensions-metadata
Last Version

Last Version

0.3.1
Release Date

Release Date

Type

Type

module
Description

Description

Island Time Serialization Extensions
Serializers for use with the kotlinx.serialization library
Project URL

Project URL

https://islandtime.io
Source Code Management

Source Code Management

https://github.com/erikc5000/island-time

Download serialization-extensions-metadata

Dependencies

compile (1)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-common jar 1.4.10

Project Modules

There are no modules declared in this project.

Build Status License Maven Central

Island Time

A Kotlin Multiplatform library for working with dates and times, heavily inspired by the java.time library.

Features:

  • A full set of date-time primitives such as Date, Time, DateTime, Instant, and ZonedDateTime
  • Time zone database support
  • Date ranges and time intervals, integrating with Kotlin ranges and progressions
  • Read and write strings in ISO formats
  • DSL-based definition of custom parsers
  • Access localized text for names of months, days of the week, time zones, etc.
  • Convenience operators like date.next(MONDAY), dateTime.startOfWeek, or date.week(WeekSettings.systemDefault())
  • Convert to and from platform-specific date-time types
  • Works on JVM, Android, iOS, macOS, tvOS, and watchOS

Notable Limitations:

  • No custom format strings (must write platform-specific code to do this)
  • No support for JavaScript or non-Apple native platforms
  • Only supports the ISO calendar system

Island Time is still early in development and "moving fast" so to speak. The API is likely to experience changes between minor version increments.

See the project website for more information along with the API reference docs.

Feedback/Contributions

The goal of this project is not just to port the java.time library over to Kotlin Multiplatform, but to take full advantage of Kotlin language features to create a date-time DSL that feels natural to users of the language and encourages best practices where possible. To that end, any and all feedback would be much appreciated in helping to iron out the API.

If you're interested in contributing or have ideas on areas that can be improved (there are definitely many right now), please feel free to initiate a dialog by opening design-related issues or submitting pull requests.

Versions

Version
0.3.1
0.3.0
0.2.4-1.4-rc
0.2.4-1.4-M3
0.2.4
0.2.3-1.4-M3
0.2.3
0.2.2
0.2.1
0.2.0