Compute the difference Between Two Dates in Kotlin!

Play this article


In many applications, it's common to calculate the difference between two dates. In Kotlin, there are several ways to achieve this, and this article will explore a few of them.

Using the Java Time API

One way to calculate the difference between two dates in Kotlin is to use the Java Time API, which is included in the Java SE 8 release and later. This API provides a set of classes for working with dates, times, and durations.

To calculate the difference between two dates, you can create two LocalDate objects and then calculate the Period between them. Here's an example:

import java.time.LocalDate
import java.time.Period

fun main() {
    val date1 = LocalDate.of(2022, 3, 20)
    val date2 = LocalDate.of(2022, 4, 15)

    val period = Period.between(date1, date2)

    println("Days between $date1 and $date2: ${period.days}")
    println("Months between $date1 and $date2: ${period.months}")
    println("Years between $date1 and $date2: ${period.years}")

In this example, we create two LocalDate objects representing March 20, 2022, and April 15, 2022. We then use the Period.between() method to calculate the period between these two dates, and we print out the number of days, months, and years between them.

Using the TimeUnit Enum

Another way to calculate the difference between two dates in Kotlin is to use the TimeUnit enum, which provides a set of constants for working with time durations. Here's an example:

import java.util.concurrent.TimeUnit
import kotlin.math.abs

fun main() {
    val date1 = System.currentTimeMillis()
    val date2 = System.currentTimeMillis()

    val duration = abs(date2 - date1)
    val days = TimeUnit.MILLISECONDS.toDays(duration)
    val hours = TimeUnit.MILLISECONDS.toHours(duration)
    val minutes = TimeUnit.MILLISECONDS.toMinutes(duration)
    val seconds = TimeUnit.MILLISECONDS.toSeconds(duration)

    println("Days between $date1 and $date2: $days")
    println("Hours between $date1 and $date2: $hours")
    println("Minutes between $date1 and $date2: $minutes")
    println("Seconds between $date1 and $date2: $seconds")

In this example, we first get the current time in milliseconds using the System.currentTimeMillis() method. We then wait for one second using the Thread.sleep() method to simulate a time delay. After that, we get the current time again and calculate the duration between the two times using the abs() function from the Kotlin math library.

We then use the TimeUnit enum to convert the duration to days, hours, minutes, and seconds, and we print out the results.


Calculating the difference between two dates is a common task in many applications. In Kotlin, you can use the Java Time API or the TimeUnit enum to achieve this. Both approaches are easy to use and provide accurate results, so the choice depends on your specific use case.

I hope this helps, you!!

More such articles:


If this article adds any value to you then please clap and comment.

Let’s connect on Stackoverflow, LinkedIn, & Twitter.

Did you find this article valuable?

Support techwasti by becoming a sponsor. Any amount is appreciated!