Как преобразовать миллисекунды в метку времени в kotlin программировании - PullRequest
1 голос
/ 11 февраля 2020

как преобразовать миллисекунды в метку времени в kotlin.

время в миллисекундах: 1575959745000 в формат: дд / мм / гггг ЧЧ: ММ: сс

1 Ответ

3 голосов
/ 11 февраля 2020

На данный момент нет чистой поддержки Kotlin для дат, только продолжительность. Вам придется полагаться на возможности целевой платформы для анализа и форматирования даты / времени.

Обратите внимание, что на какую бы платформу вы ни ориентировались, преобразование миллисекундной эпохи в форматированную дату не имеет смысла. без определения часового пояса.

Если вы нацеливаетесь на JVM , то вы можете использовать java.time API следующим образом:

// define once somewhere in order to reuse it
val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");

// JVM representation of a millisecond epoch absolute instant
val instant = Instant.ofEpochMilli(1575959745000L)

// Adding the timezone information to be able to format it (change accordingly)
val date = LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
println(formatter.format(date)) // 10/12/2019 06:35:45

Если вы нацеливаетесь JavaScript, все становится сложнее. Вы можете сделать следующее, чтобы использовать какой-то часовой пояс по умолчанию и какой-нибудь достаточно близкий формат (определенный языковым стандартом "en-gb"):

val date = Date(1575959745000)
println(date.toLocaleString("en-gb")) // 10/12/2019, 07:35:45

У вас есть способы указать часовой пояс согласно стандарту JS API для Date.toLocaleString(). Но я не особо углублялся в детали.

Что касается нативного , я понятия не имею.

...