Вывод строки «сейчас» в Kotlin с использованием часового пояса UTC
Я пытаюсь написать функцию Kotlin, которая повторяет поведение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
, хотя он должен выводить3 hours ago
какmoment
функция делает так, как отметка времени находится в формате UTC.
Как я могу исправить это, чтобы всегда учитывать время UTC, а не местное время при расчете разницы?