Non-Java
我还不认识柯特林,但我能读the documentation字.
LocalDateTime
类表示带有日期时间的日期,但缺少时区或UTC偏移量的上下文.所以这个类不能代表时间线上的某个时刻.
相比之下,Instant
级确实代表了一个时刻,一个时间轴上的时间点.此类表示的日期具有与UTC零小时-分-秒的偏移量.
您可以获得DateTimePeriod
类中两个Instant
对象之间经过的时间量.LocalDateTime
班没有这样的班级.
因此,我们应该能够分配零偏移量,将LocalDateDate
个对象转换为Instant
个对象.我不知道该怎么做,因为我不使用Kotlin.但我想你可以通过在所有三个参数中都传递零来得到UtcOffset
,然后将它应用于LocalDateTime
,从而得到Instant
.
在你的问题中,你不愿意走这条路,因为你说的是"微观优化".我不知道你在说什么.但我会 Select 那条路.否则,您将需要编写自己的实现来计算运行时间.
Java
kotlinx-datetime是一个模仿与JavaBundle 在一起的java.time框架的库,但只包含有限的功能子集.该库用于Kotlin应用程序,这些应用程序将被部署到JVM上.
在您的例子中,您需要的是java.time个类中的Duration
个类.
如果您的应用程序将部署到JVM,请使用java.time:Duration.between( startLdt , endLdt )
.
Duration d =
Duration.between(
LocalDateTime.of ( 2020, Month.MARCH, 25, 10, 36, 12 ) ,
LocalDateTime.of ( 2023, Month.FEBRUARY, 28, 0, 0, 1 )
) ;