DEV Community

Vinícius Alves Mello
Vinícius Alves Mello

Posted on • Edited on

4 1

Exemplos de como trabalhar com datas no Kotlin

Convertendo uma data para uma string formatada

import java.text.SimpleDateFormat
import java.util.*

fun Date.dateToString(format: String = "yyyy-MM-dd HH:mm:ss"): String =
    SimpleDateFormat(format, Locale.getDefault()).format(this)
Enter fullscreen mode Exit fullscreen mode

Convertendo uma string para data

import java.text.SimpleDateFormat
import java.util.*

fun String.stringToDate(format: String = "yyyy-MM-dd HH:mm:ss"): Date =
    SimpleDateFormat(format, Locale.getDefault()).parse(this)
Enter fullscreen mode Exit fullscreen mode

Recuperando a diferença entre duas datas

  • Diferença em horas
import java.util.concurrent.TimeUnit
import java.util.*

infix fun Date.difHoursTo(dateTo: Date): Long =
    TimeUnit.MILLISECONDS.toHours(dateTo.time - this.time)
Enter fullscreen mode Exit fullscreen mode
  • Diferença em minutos
import java.util.concurrent.TimeUnit
import java.util.*

infix fun Date.difMinutesTo(dateTo: Date): Long =
    TimeUnit.MILLISECONDS.toMinutes(dateTo.time - this.time)
Enter fullscreen mode Exit fullscreen mode
  • Diferença em segundos
import java.util.concurrent.TimeUnit
import java.util.*

infix fun Date.difSecondsTo(dateTo: Date): Long =
    TimeUnit.MILLISECONDS.toSeconds(dateTo.time - this.time)
Enter fullscreen mode Exit fullscreen mode

Adicionando anos, meses, dias, horas, minutos ou segundos em uma data

  • Extension function utilizada pelas demais
import java.util.*

fun Date.add(field: Int, amount: Int): Date {
    Calendar.getInstance().apply {
        time = this@add
        add(field, amount)
        return time
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Adicionando anos
import java.util.*

fun Date.addYears(years: Int): Date =
    add(Calendar.YEAR, years)
Enter fullscreen mode Exit fullscreen mode
  • Adicionando meses
import java.util.*

fun Date.addMonths(months: Int): Date =
    add(Calendar.MONTH, months)
Enter fullscreen mode Exit fullscreen mode
  • Adicionando dias
import java.util.*

fun Date.addDays(days: Int): Date =
    add(Calendar.DAY_OF_MONTH, days)
Enter fullscreen mode Exit fullscreen mode
  • Adicionando horas
import java.util.*

fun Date.addHours(hours: Int): Date =
    add(Calendar.HOUR_OF_DAY, hours)
Enter fullscreen mode Exit fullscreen mode
  • Adicionando minutos
import java.util.*

fun Date.addMinutes(minutes: Int): Date =
    add(Calendar.MINUTE, minutes)
Enter fullscreen mode Exit fullscreen mode
  • Adicionando segundos
import java.util.*

fun Date.addSeconds(seconds: Int): Date =
    add(Calendar.SECOND, seconds)
Enter fullscreen mode Exit fullscreen mode

Gist do GitHub

Meus contatos

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay