Como obter timestamp no Android com Kotlin: guia completo

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

Android Get Current Timestamp em Kotlin: do iniciante ao profissional

\n\n

Você já se perguntou como seu smartphone sabe a hora exata quando você envia uma mensagem, tira uma foto ou inicia um cronômetro? No centro dessa mágica está o timestamp — uma marca digital que registra o momento com precisão de milissegundos. Se você está escrevendo um aplicativo para Android em Kotlin, mais cedo ou mais tarde terá que enfrentar a tarefa: "Android get current timestamp".

\n\n

Esta pergunta é uma das mais populares no Stack Overflow (milhares de visualizações!). E não é surpresa: parece simples, mas na prática, iniciantes se perdem na confusão entre milissegundos, segundos, fusos horários e classes obsoletas. Neste artigo, abordaremos todas as formas de obter o timestamp atual no Android com Kotlin — desde as básicas até as avançadas. Você aprenderá qual método escolher para sua tarefa e como evitar erros comuns.

\n\n

O que é timestamp e para que serve no Android?

\n\n

Timestamp (marca temporal) é um número que representa a quantidade de tempo decorrido desde um ponto de referência específico. O mais usado é o Unix timestamp — a quantidade de milissegundos (ou segundos) desde 1º de janeiro de 1970 00:00:00 UTC. Para que serve no Android?

\n\n
    \n
  • Registro de eventos — captura de ações do usuário.
  • \n
  • Sincronização de dados — envio de hora para o servidor.
  • \n
  • Cache — verificação de obsolescência de dados.
  • \n
  • Animações e cronômetros — cálculo de tempo decorrido.
  • \n
  • Bancos de dados — ordenação de registros por hora.
  • \n
\n\n

No desenvolvimento Android com Kotlin, você tem várias ferramentas para obter o timestamp. Vamos analisá-las do simples ao complexo.

\n\n

Método 1: System.currentTimeMillis() — o clássico

\n\n

A forma mais simples e rápida de obter o timestamp atual em milissegundos é usar System.currentTimeMillis(). Este método existe em Java e está totalmente disponível em Kotlin.

\n\n
val currentTimestampMillis = System.currentTimeMillis()\nprintln("Timestamp atual (ms): $currentTimestampMillis")
\n\n

Vantagens:

\n
    \n
  • Velocidade instantânea (chamada nativa).
  • \n
  • Não requer imports adicionais.
  • \n
  • Funciona em todas as versões do Android.
  • \n
\n\n

Desvantagens:

\n
    \n
  • Retorna apenas milissegundos.
  • \n
  • Vinculado à hora do sistema do dispositivo (o usuário pode alterá-la).
  • \n
  • Não considera fusos horários — é apenas um número.
  • \n
\n\n

Este método é ideal para medir intervalos (por exemplo, tempo de execução de código) ou quando você precisa de um número rápido para comparação.

\n\n

Método 2: Instant.now() — abordagem moderna (Java 8+)

\n\n

A partir do nível de API 26 (Android 8.0) e superior, você pode usar a classe java.time.Instant. Isso faz parte da API moderna de tempo, que resolve muitos problemas das classes antigas.

\n\n
import java.time.Instant\n\nval instant = Instant.now()\nval timestampMillis = instant.toEpochMilli()\nval timestampSeconds = instant.epochSecond\n\nprintln("Instant: $instant")\nprintln("Timestamp (ms): $timestampMillis")\nprintln("Timestamp (seg): $timestampSeconds")
\n\n

Vantagens:

\n
    \n
  • API limpa e moderna.
  • \n
  • Facilmente conversível para outros formatos.
  • \n
  • Trabalha com UTC por padrão.
  • \n
\n\n

Desvantagens:

\n
    \n
  • Requer API 26+ (para dispositivos antigos, é necessário desugaring ou a biblioteca ThreeTenABP).
  • \n
\n\n

Se seu aplicativo é direcionado a dispositivos modernos, Instant.now() é a melhor escolha para obter timestamp.

\n\n

Método 3: Calendar — obsoleto, mas ainda usado

\n\n

A classe java.util.Calendar é uma forma antiga que ainda é

Blogs

Book Recommendations