Every kotlinx.datetime extension function you'll ever need.
- val localDateFormat = LocalDate.Format {
- byUnicodePattern("dd/MM/yyyy")
- }
- val date = LocalDate.parse("11/15/2024", localDateFormat)
+ val date = "11/15/2024".toLocaldate("dd/MM/yyyy")
- val dateFormat = LocalDate.Format {
- byUnicodePattern("dd/MM/yyyy")
- }
- print(dateFormat.format(date))
+ print(date.print("MM/dd/yyyy"))
- val result = date.plus(days * -1, DateTimeUnit.DAY)
+ val result = date.minusDays(days)JVM · Android · iOS · JS (browser & Node.js) · WASM (browser & Node.js)
Convert strings into Kotlinx DateTime objects with ease
val result = "01:30 AM".toLocaltime()
val result = "2021-06-07".toLocaldate()
val result = "06/07/2021".toLocaldate("MM/dd/yyyy")
val result = "06/07/2021".toLocaldate("MM/dd/yyyy", "yyyy-MM-dd") // fall back parsing formats
val result = "2024-11-15T12:34:56.123456Z".toLocalDatetime() // handles fractional seconds that Kotlinx DateTime doesn'tCompare dates and times at various granularities
// Year
val result = dateA.compareYear(dateB)
val result = dateA.isBeforeYear(dateB)
// Month
val result = dateA.compareMonth(dateB)
val result = dateA.getMonthDifference(dateB)
val result = dateA.isEqualMonth(dateB)
// Day
val result = dateA.compareDay(dateB)
val result = dateA.getDayDifference(dateB)
val result = dateA.isAfterEqualDay(dateB)Print dates and times using a custom format
val date = "2021-07-06".toLocaldate()
val result = date.print("MM/dd/yyyy")Query date/time properties
// LocalDate
val result = date.isWeekend()
val result = date.isWeekday()
val result = date.isInLeapYear()
val result = date.getDaysInMonth()
val result = date.getMonthBaseZero()
// LocalTime
val result = time.isAtStartOfDay()
val result = time.isAtEndOfDay()
val result = time.isAtNoon()
val result = time.isInAm()
val result = time.isInPm()Add, subtract, and set fields
// Date arithmetic
val result = date.plusDays(3)
val result = date.minusMinutes(2)
val result = date.plusSeconds(1)
// Field setters
val result = date.withYear(2025)
val result = date.withMonth(6)
val result = dateTime.withHour(9)
// Boundaries
val result = date.atStartOfDay()
val result = date.atEndOfDay()
val result = date.atStartOfMonth()
val result = date.atEndOfMonth()
// Navigation
val result = date.getLast(DayOfWeek.FRIDAY)
val result = date.getNext(DayOfWeek.MONDAY)Convert between time zones
val result = dateTime.fromZoneToZone(ZoneIds.AMERICA_NEW_YORK, ZoneIds.ASIA_TOKYO)
val result = dateTime.fromUtcToZone(ZoneIds.EUROPE_LONDON)
val result = dateTime.fromZoneToUtc(ZoneIds.AMERICA_LOS_ANGELES)Quickly access commonly used dates
// Now
val result = LocalTime.now()
val result = LocalDate.now()
val result = LocalDateTime.now()
val result = LocalDateTime.now(ZoneIds.AMERICA_LOS_ANGELES)
// Relative days
val result = LocalDate.yesterday()
val result = LocalDate.today()
val result = LocalDate.tomorrow()
// Day-of-week shortcuts
val result = LocalDate.lastFriday()
val result = LocalDate.nextMonday()
val result = LocalDateTime.lastSunday()
val result = LocalDateTime.nextWednesday()
// Period boundaries
val result = LocalDate.startOfYear()
val result = LocalDate.endOfYear()
val result = LocalDate.startOfMonth()
val result = LocalDate.endOfMonth()Add the following to your module's build.gradle:
repositories {
mavenCentral()
}
dependencies {
implementation("org.eljabali.sami.kotlinxdatetimefun:kotlinxdatetimefun:0.0.9")
}Star this repository as others have. ⭐️
- DateTimeFormats to help with day to day printing/parsing!
- Java Time Fun library for JVM based projects.
