Tenho um tempo representado em um Kotlin Instant. Quero obter a string de data e hora ISO 8601 para o fuso horário local no Android. Mas estou tendo conflitos com duas classes separadas chamadas TimeZone e não sei como traduzir entre elas (ou se estou no caminho certo).
A documentação do Kotlin diz para usar Instant.toLocalDateTime()
e passar um TimeZone
. Isso é androidx.datetime.TimeZone
.
Os documentos do Android dizem para obter o fuso horário local usando TimeZone.getDefault()
. Mas isso é android.icu.util.TimeZone
.
Qual é a maneira correta de realizar essa tarefa simples?
Existem várias estruturas de data diferentes disponíveis com interoperabilidade limitada.
Você escolheu usar a biblioteca Kotlin datetime do
kotlinx.datetime
pacote até agora, então a maneira mais fácil seria continuar usando-a.toLocalDateTime
requer um parâmetro do tipokotlinx.datetime.TimeZone
, então você pode usarTimeZone.currentSystemDefault()
para obter o fuso horário atual quando usarNão utilize nenhum destes:
A maneira mais simples de conseguir isso é: