Trabalho com datas em Kotlin: bibliotecas e ferramentas para desenvolvimento

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalho com datas em Kotlin: visão geral das bibliotecas e ferramentas



Trabalhar com datas e horas é uma das tarefas essenciais no desenvolvimento moderno. Kotlin, sendo uma linguagem moderna, oferece várias maneiras poderosas de gerenciar datas. Neste artigo, vamos explorar as principais bibliotecas e abordagens que ajudarão você a trabalhar eficientemente com datas em projetos Kotlin, incluindo desenvolvimento Android e aplicações servidoras.



1. Biblioteca padrão java.time (Java 8+)



A partir do Java 8, os desenvolvedores tiveram acesso a uma API completamente reformulada para trabalhar com datas — java.time. Como Kotlin é totalmente compatível com Java, você pode usar esta ferramenta poderosa diretamente. Esta é a forma mais comum para aplicações servidoras em Kotlin.



Classes principais:

  • LocalDate — data sem hora (ano, mês, dia)
  • LocalTime — hora sem data
  • LocalDateTime — data e hora sem fuso horário
  • ZonedDateTime — data e hora com fuso horário
  • Instant — momento no tempo em UTC
  • Duration e Period — para trabalhar com intervalos


import java.time.LocalDateimport java.time.LocalDateTimeimport java.time.format.DateTimeFormatter

fun main() { // Data atual val today = LocalDate.now() println("Hoje: $today")

// Criando uma data específica val birthDate = LocalDate.of(1990, 5, 15) println("Data de nascimento: $birthDate")

// Formatação val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy") val formatted = today.format(formatter) println("Data formatada: $formatted")

// Parsing de string val parsedDate = LocalDate.parse("2024-01-01") println("Data parseada: $parsedDate")

// Trabalhando com data e hora val now = LocalDateTime.now() println("Agora: $now")}


2. kotlinx-datetime — biblioteca oficial da JetBrains



Para projetos que utilizam Kotlin Multiplatform, a biblioteca padrão kotlinx-datetime é a melhor escolha. Ela fornece uma API unificada para todas as plataformas (JVM, JS, Native, Android).



Adicionando dependência (build.gradle.kts):

dependencies {    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}


Principais recursos:

  • Instant — momento no tempo
  • LocalDateTime — data e hora local
  • LocalDate — data local
  • LocalTime — hora local
  • TimeZone — fusos horários
  • DateTimePeriod — período de tempo


import kotlinx.datetime.*

fun main() { // Data e hora atuais val now = Clock.System.now() println("Momento atual: $now")

// Convertendo para componentes locais val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Hora local: $localDateTime")

// Criando uma data val date = LocalDate(2024, 12, 25) println("Data: $date")

// Formatação val formatted = localDateTime.toString() println("Representação em string: $formatted")

// Parsing val parsed = Instant.parse("2024-01-01T12:00:00Z") println("Instant parseado: $parsed")

// Trabalhando com fusos horários val moscowTime = now.toLocalDateTime(TimeZone.of("Europe/Moscow")) println("Horário de Moscou: $moscowTime")}


3. ThreeTenABP — para compatibilidade reversa no Android



Se sua aplicação suporta Android API abaixo de 26 (Android 8.0), você não pode usar java.time diretamente. Neste caso, a biblioteca ThreeTenABP<

Recommendations