Вывод строки «сейчас» в 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, а не местное время при расчете разницы?

0 ответов

Другие вопросы по тегам