我尝试将代码转换为使用kotlinx.datetime而不是java.time库,因为我希望利用kotlinx库的序列化优势(它可以使用@Serialize
注解序列化instant)。
然而,我有一些测试使用了java.time.Clock,虽然有一个kotlinx.datetime.Clock类,但它似乎比java类更受限制。
是否有一种方法可以实现与此相同的功能(使用java.time.Clock
和java.time.Instant
):
val clockFixed = Clock.fixed(Instant.now().minusMillis(1000), ZONE_ID_UTC)
使用kotlinx库?它不需要完全相同,但是我想要一个时钟,总是返回相同的时刻,这样我就可以使用它进行测试和生产代码。
1条答案
按热度按时间0qx6xfy61#
kotlinx.datetime.Clock
是一个非常简单的接口,它(从0.4.0
版本开始)只包含一个函数声明。从
0.4.0
开始,库本身没有提供Fixed
时钟的实现,但是,您可以轻松地提供自己的Fixed
时钟实现,并使其在Clock
接口的companion object
上可用。然后,您可以像使用库提供的官方
System
时钟一样使用它。