Я получаю метку времени UNIX от DarkSkyApi для времени восхода и захода солнца для выбранного места, и я хочу преобразовать ее в формат DateTime и отобразить ее пользователю. Я хочу, чтобы значения времени были локальными.
Пример случая: пользователь находится в Италии и выбирает «Токио, JP» в качестве желаемого местоположения для получения информации о погоде. Значения времени восхода и захода солнца должны быть отформатированы и показаны как местное время. Так что для Токио восход солнца должен быть примерно в 4:34 и 18:36 для заката.
С тем, что у меня есть прямо сейчас, я получаю неправильные значения, такие как 12:17 для восхода солнца и 2:29 для заката. Есть идеи, что я здесь делаю не так?
PS tmz
var - это часовой пояс выбранного места, поэтому в данном случае это будет «Азия / Токио». Вот что я делаю прямо сейчас для времени заката (то же самое для времени восхода):
private fun setViewHolderWeekDaySunsetTime(holder: ViewHolder, sunsetTime: Long, tmz: String) {
val dt = Instant.ofEpochSecond(sunsetTime).atZone(
ZoneId.of(tmz)
)
val formatted = dt.format(DateTimeFormatter.ofPattern("HH:mm"))
holder.weekDaySunsetTime.text = formatted
}