Fixes in DateProvider

This commit is contained in:
Maxime NATUREL 2022-05-02 09:47:07 +02:00
parent 68a44c4cc7
commit d44a6c50f1

View File

@ -19,27 +19,30 @@ package im.vector.app.core.resources
import org.threeten.bp.Instant
import org.threeten.bp.LocalDateTime
import org.threeten.bp.ZoneId
import org.threeten.bp.ZoneOffset
object DateProvider {
private val zoneId = ZoneId.systemDefault()
private val zoneOffset by lazy {
val now = currentLocalDateTime()
zoneId.rules.getOffset(now)
}
// recompute the zoneId each time we access it to handle change of timezones
private val defaultZoneId: ZoneId
get() = ZoneId.systemDefault()
// recompute the zoneOffset each time we access it to handle change of timezones
private val defaultZoneOffset: ZoneOffset
get() = defaultZoneId.rules.getOffset(currentLocalDateTime())
fun toLocalDateTime(timestamp: Long?): LocalDateTime {
val instant = Instant.ofEpochMilli(timestamp ?: 0)
return LocalDateTime.ofInstant(instant, zoneId)
return LocalDateTime.ofInstant(instant, defaultZoneId)
}
fun currentLocalDateTime(): LocalDateTime {
val instant = Instant.now()
return LocalDateTime.ofInstant(instant, zoneId)
return LocalDateTime.ofInstant(instant, defaultZoneId)
}
fun toTimestamp(localDateTime: LocalDateTime): Long {
return localDateTime.toInstant(zoneOffset).toEpochMilli()
return localDateTime.toInstant(defaultZoneOffset).toEpochMilli()
}
}