我正在尝试编写一个Kotlin函数,它复制moment
库中fromNow
的行为。
下面的代码:
fun formatDuration(dateTime: String): String {
try {
val parsedDateTime = Instant.parse(dateTime)
val prettyTime = PrettyTime()
prettyTime.reference = Instant.now().atZone(ZoneOffset.UTC).toInstant()
return prettyTime.format(parsedDateTime)
} catch (e: DateTimeParseException) {
e.printStackTrace()
return "Invalid date/time format"
}
}
问题是,当设备时间为9:44
,输入字符串为2023-02-19T11:48:09.958Z
,当前UTC
时间为15:19
时,它将输出2 hours from now
,即使它应该像moment
函数那样输出3 hours ago
,因为时间戳是UTC。
如何修复此问题,以便在计算差值时始终考虑UTC时间而不是本地时间?
1条答案
按热度按时间11dmarpk1#
您是否尝试过更改:
发件人:
致: