Timestamp
一个用于表示 Unix 时间戳的类型。 是从 UTC 1970.01.01T00:00:00Z 直至现在所经过的时间, 常见的时间单位有秒或毫秒。
Timestamp 不是日期API ,而仅是一种忽略时间单位的时间戳包装体。 因此 Timestamp 本身不提供例如解析某格式的日期(例如 ISO-8601)或进行日期格式化等功能。
它类似 Instant,只不过诞生自 Kotlin 标准库尚未提供 Instant 的时代。
这些功能也许会在某些支持的特定平台上提供辅助实现或额外实现:
在JVM平台上使用
java.time相关API在 apple 平台上提供基于
platform.Foundation.NSDate的实现在 web 平台上提供基于
js.date.Date的实现
当然,也可以自行实现 Timestamp 来定制化其内部细节。
简单包装
Timestamp 是一种简单的包装类型,大多数情况下对外提供的 Timestamp 很可能是在保证结果一致的情况下即用即造的。 例如:
interface Foo {
val timestamp: Timestamp
}
class FooImpl : Foo {
val timestamp: Timestamp
get() = InternalTimestampImpl(time)
}Content copied to clipboard
equals&hashCode
Timestamp 应支持与任意 Timestamp 类型进行匹配,但是无法保证 equals 结果为 true 的两个结果的 hashCode 相同。
默认实现
MillisecondTimestamp 是全平台的默认实现,提供一个毫秒值,进行一个简单的包装。
StandardInstantTimestamp 是自 5.0 开始提供的新的全平台的默认实现, 基于 Kotlin (2.3+)的标准库的 Instant 提供 Timestamp 的能力实现。
Author
ForteScarlet