如何在Kotlin中获取当前时间作为时间戳?

qcuzuvrc  于 2023-01-26  发布在  Kotlin
关注(0)|答案(6)|浏览(190)

这是我需要的时间戳格式:2018年3月22日19时02分12.337909秒

e0bqpujr

e0bqpujr1#

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

DateTimeFormatter.ISO_INSTANT.format(Instant.now())

这将返回2018-04-16T17:00:08.746Z。对于您的格式,或者如果您需要一个不同的时区,您可以指定:

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

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

  • java.time* 类与Android 26和更高版本以及Java 8和更高版本捆绑在一起。大多数 java.time 功能在ThreeTen-Backport项目中向后移植到Java 6和Java 7。在ThreeTenABP中进一步适应早期的Android(〈26)。请参见How to use ThreeTenABP…
    更新2020/07年度

ThreeTenABP的开发工作正在接近尾声。借助Gradle插件4.0及更高版本,您可以直接使用java 8 API,而无需为应用设置最低API级别。
有关详细信息,请参阅Java 8+ API去糖支持(Android Gradle插件4.0.0+)

drnojrws

drnojrws2#

val currentTimestamp = System.currentTimeMillis()
r9f1avp5

r9f1avp53#

尝试java.sql.Timestamp(System.currentTimeMillis())我使用的是API 19,它对我很有效

ffx8fchx

ffx8fchx4#

package com.mkyong.date
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.Date
object TimeStampExample {
    private val sdf = SimpleDateFormat("yyyy.MM.dd.HH.mm.ss")
    @JvmStatic fun main(args:Array<String>) {
        //method 1
        val timestamp = Timestamp(System.currentTimeMillis())
        println(timestamp)
        //method 2 - via Date
        val date = Date()
        println(Timestamp(date.getTime()))
        //return number of milliseconds since January 1, 1970, 00:00:00 GMT
        println(timestamp.getTime())
        //format timestamp
        println(sdf.format(timestamp))
    }
}
cdmah0mi

cdmah0mi5#

我在用这个
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
这里有所有的日期和时间模式https://developer.android.com/reference/java/text/SimpleDateFormat

sz81bmfz

sz81bmfz6#

首先获取

val currentTimeMillis = System.currentTimeMillis()
// currentTimeMillis = 1674411796305

然后像这样获取时间戳

val timeStamp = Timestamp(currentTimeMillis)
// timestamp = 2023-01-22 20:23:16.305

相关问题