我需要的时间戳格式为:2018-03-22 19:02:12.337909
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)。请参见如何使用 ThreeTenABP…。
更新2020/07
ThreeTenABP的开发正在逐渐结束。使用Gradle插件4.0及更高版本,您可以直接使用java 8 API,而不需要为应用程序设置最低API级别。
有关详细信息,请参见Java 8+ API desugaring support (Android Gradle Plugin 4.0.0+)。
val currentTimestamp = System.currentTimeMillis()
System.currentTimeMillis()
返回的是一个长整型数,而不是一个格式化后的字符串。 - BDL尝试使用java.sql.Timestamp(System.currentTimeMillis())
,我使用API 19时可以正常工作。
java.sql.Timestamp
类被java.time类所替代。Instant
和OffsetDateTime
类取代了它。在2019年建议使用Timestamp
是不良的建议。请注意,该类已经被淘汰。 - Basil Bourque首先获取
val currentTimeMillis = System.currentTimeMillis()
// currentTimeMillis = 1674411796305
val timeStamp = Timestamp(currentTimeMillis)
// timestamp = 2023-01-22 20:23:16.305
使用kotlinx.datetime库。以下是操作方法:
val currentTime = Clock.System.now()
println("The current time is $currentTime")
将以此格式打印当前时间:
2023-02-28T07:43:04.618714Z
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))
}
}
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
你可以在这里找到所有日期和时间格式的模式:
https://developer.android.com/reference/java/text/SimpleDateFormat
// method 1
val currentTimestamp =System.currentTimeMillis()
// method 2
val currentTimestamp =Instant.now().toEpochMilli()
// method 3
val currentZonedDateTime = ZonedDateTime.now()
val currentTimestamp = currentZonedDateTime.toInstant().toEpochMilli()
// method 4
val currentTimestamp = Clock.System.now()