如何在Kotlin中获取TimeStamp的当前时间?

Amb*_*and 12 time timestamp kotlin

这是我需要的时间戳格式:2018-03-22 19:02:12.337909

Dre*_*ens 20

Kotlin没有任何时间处理它自己的类,所以你只使用Java java.time.对于ISO-8601时间戳(这是首选格式):

DateTimeFormatter.ISO_INSTANT.format(Instant.now())
Run Code Online (Sandbox Code Playgroud)

那会回来2018-04-16T17:00:08.746Z.对于您的格式,或者如果您需要不同的时区,您可以指定:

DateTimeFormatter
    .ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS")
    .withZone(ZoneOffset.UTC)
    .format(Instant.now())
Run Code Online (Sandbox Code Playgroud)

有关如何指定格式字符串的详细信息,请参阅java.time.format.DateTimeFormatterJavaDoc.

  • 这需要API lvl 26或更高版本,与旧版API的任何兼容替代品? (6认同)

小智 20

  val currentTimestamp = System.currentTimeMillis()
Run Code Online (Sandbox Code Playgroud)

  • 这不会为您提供所需的格式操作。`System.currentTimeMillis()` 返回一个长字符串,而不是格式化字符串。 (3认同)
  • 也许这不是这个问题的答案,但是当我搜索“Kotlin 中的时间戳”时,这是最好的答案,所以投票 (2认同)

And*_*sse 14

尝试Timestamp(System.currentTimeMillis())我使用API​​ 19,它对我有用

  • 导入 java.sql.Timestamp (2认同)
  • 可怕的java.sql.Timestamp类在几年前被JSR 310所取代,被* java.time *类所取代。被“ Instant”和“ OffsetDateTime`类所取代。建议在2019年使用「时间戳记」是不明智的建议。 (2认同)

小智 5

首先得到

val currentTimeMillis = System.currentTimeMillis()
// currentTimeMillis = 1674411796305 
Run Code Online (Sandbox Code Playgroud)

然后像这样获取时间戳

val timeStamp = Timestamp(currentTimeMillis)
// timestamp = 2023-01-22 20:23:16.305
Run Code Online (Sandbox Code Playgroud)