DEV Community

Vinícius Alves Mello
Vinícius Alves Mello

Posted on • Updated on

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

Top comments (0)