【发布时间】:2018-09-26 11:47:09
【问题描述】:
这是我需要的时间戳格式:2018-03-22 19:02:12.337909
【问题讨论】:
这是我需要的时间戳格式: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 (How to use ThreeTenABP…。
2020/07 更新
ThreeTenABP 的开发正在逐渐结束。使用 Gradle 插件 4.0 及更高版本,您可以直接使用 java 8 API,而无需为您的应用设置最低 API 级别。
欲了解更多信息,请参阅Java 8+ API desugaring support (Android Gradle Plugin 4.0.0+)
【讨论】:
试试 java.sql.Timestamp(System.currentTimeMillis()) 我正在使用 API 19,它适用于我
【讨论】:
java.sql.Timestamp 类在几年前被 JSR 310 采用的 java.time 类所取代。被 Instant 和 OffsetDateTime 类取代。建议在 2019 年使用 Timestamp 是糟糕的建议。
val currentTimestamp = System.currentTimeMillis()
【讨论】:
System.currentTimeMillis() 返回一个长字符串,而不是格式化字符串。
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
【讨论】:
SimpleDateFormat类。至少不是第一选择。而且不是没有任何保留。今天我们在java.time, the modern Java date and time API, 和它的DateTimeFormatter 中有很多更好的地方。是的,您可以在 Android 上使用它。对于较旧的 Android,请参阅 How to use ThreeTenABP in Android Project。