Я пытаюсь создать простое приложение, в котором пользователю нужно выбрать дату. Моя проблема заключается в том, что по умолчанию используется дата в соответствии со временем UTC, если я не добавлю настройку смещения зоны. Меня смущает то, что я думал, что val currentZonedDateTime = ZonedDateTime.now(ZoneId.systemDefault()) будет учитывать часовой пояс. Я обнаружил, что мне приходится добавлять смещение. В противном случае после 18:00 по умолчанию используется следующий день.
Код: Выделить всё
val currentZonedDateTime = ZonedDateTime.now(ZoneId.systemDefault())
val zoneOffset = currentZonedDateTime.offset
val datePickerState = rememberDatePickerState(
initialSelectedDateMillis = currentZonedDateTime.toInstant().toEpochMilli(),
//initialSelectedDateMillis = currentZonedDateTime.toInstant().toEpochMilli() + zoneOffset.totalSeconds * 1000,)
Если я использую отладчик, он показывает, что для параметра currentZonedDateTime установлено значение Америка/Чикаго. Так почему же он показывает время UTC, если я не добавляю код для добавления ZoneOffSet? Есть ли лучший способ сделать это? Это работает, если я добавлю прокомментированный код. Я не понимаю, зачем мне это нужно.
Подробнее здесь:
https://stackoverflow.com/questions/778 ... datepicker