Проблема с изменением часового пояса на летнее времяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема с изменением часового пояса на летнее время

Сообщение Anonymous »

В моей стране больше не соблюдается летнее время. Теперь мы используем стандартное время круглый год.
Поэтому на многих устройствах возникли проблемы. Чтобы исправить это, я использовал разные подходы, но только один из них работает правильно.
Я пытаюсь преобразовать время эпохи в местное время. Например

Код: Выделить всё

val epocTime = 1715244851730 // 12:24:11.730 PM GMT+03:30
Когда я использую SimpleDateFormat, я получаю неправильный результат.

Код: Выделить всё

java.text.SimpleDateFormat("HH:mm", Locale.getDefault(Locale.Category.FORMAT))
.format(Date(time)) // 13:24
Кроме того, когда я использую java.time.LocalDateTime, я получаю неправильный результат

Код: Выделить всё

java.time.LocalDateTime.ofInstant(
java.time.Instant.ofEpochMilli(epocTime),
java.time.ZoneId.systemDefault()
) // 13:24:11.730
Но когда я использую библиотеку ThreeTen, я получаю правильный результат

Код: Выделить всё

org.threeten.bp.LocalDateTime.ofInstant(
org.threeten.bp.Instant.ofEpochMilli(epocTime),
org.threeten.bp.ZoneId.systemDefault(),
) // 12:24:11.730
Итак, вопрос: не является ли Java Time заменой библиотеки ThreeTen?

Подробнее здесь: https://stackoverflow.com/questions/784 ... es-problem
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»