如何在 kotlin 编程中将毫秒转换为时间戳

use*_*934 5 timestamp kotlin

如何在 kotlin 中将毫秒转换为时间戳。

时间以毫秒为单位:1575959745000格式为: dd/MM/yyyy HH:MM:ss

Jof*_*rey 6

编辑:现在,有kotlinx-datetime


目前没有对日期的纯 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
Run Code Online (Sandbox Code Playgroud)

如果您的目标是 JavaScript,事情会变得更棘手。您可以执行以下操作以使用某种默认时区和一些足够接近的格式(由 locale 定义"en-gb"):

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

您可以根据 .js 的标准 JS API 指定时区Date.toLocaleString()。但我没有深入研究细节。

至于 native,我不知道。