I\'m using ThreeTen-Backport library for my Android project (because java.time is not yet implemented in android development).
When I write LocalDate today=L
Instead of initialization of the library, you can try this:
LocalDateEx.kt
object LocalDateEx {
/**an alternative of LocalDate.now(), as it requires initialization using AndroidThreeTen.init(context), which takes a bit time (loads a file)*/
@JvmStatic
fun getNow(): LocalDate = Calendar.getInstance().toLocalDate()
}
fun Calendar.toLocalDate(): LocalDate = LocalDate.of(get(Calendar.YEAR), get(Calendar.MONTH) + 1, get(Calendar.DAY_OF_MONTH))
LocalTimeEx.kt
object LocalTimeEx {
/**an alternative of LocalDateTime.now(), as it requires initialization using AndroidThreeTen.init(context), which takes a bit time (loads a file)*/
@JvmStatic
fun getNow(): LocalTime = Calendar.getInstance().toLocalTime()
}
fun Calendar.toLocalTime(): LocalTime = LocalTime.of(get(Calendar.HOUR_OF_DAY), get(Calendar.MINUTE), get(Calendar.SECOND), get(Calendar.MILLISECOND) * 1000000)
LocalDateTimeEx.kt
object LocalDateTimeEx {
/**an alternative of LocalDateTime.now(), as it requires initialization using AndroidThreeTen.init(context), which takes a bit time (loads a file)*/
@JvmStatic
fun getNow(): LocalDateTime = Calendar.getInstance().toLocalDateTime()
}
private fun Calendar.toLocalDateTime(): LocalDateTime = LocalDateTime.of(get(Calendar.YEAR), get(Calendar.MONTH) + 1, get(Calendar.DAY_OF_MONTH), get(Calendar.HOUR_OF_DAY), get(Calendar.MINUTE), get(Calendar.SECOND),
get(Calendar.MILLISECOND) * 1000000)
Usage:
val today=LocalDateEx.getNow()
val today2=LocalTimeEx.getNow()
val today3=LocalDateTimeEx.getNow()