Мне нужно получить местное время в моем приложении. Для этого я использую класс Calendar.Получить часовой пояс по умолчанию в android
Код:
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.HOUR_OF_DAY)
показывает часы по Гринвичу.
Я проверил, что TimeZone.getDefault().getDisplayName()
показывает GMT (что неверно) по умолчанию, но java.util.TimeZone.getDefault().getDisplayName()
показывает правильный часовой пояс. Также calendar.getTime().toString()
показывает правильное время.
Я не понимаю, почему существует такое расхождение между android.icu.util.TimeZone
и java.util.TimeZone
Edit:
Недавно я обнаружил, что есть два календаря API, - java.util.Calendar (добавлено в уровне API 1) и android.icu.util.Calendar (добавлен в уровень API 24).
я использовал android.icu.util.Calendar но тестировал на Android M. Итак, теперь я буду использовать API java.util.Calendar
http://stackoverflow.com/questions/5369682/get-current-time-and-date-on-android – Nabin
@NabinKhadka Я получаю время для часового пояса GMT. Но мое требование - получить время для местного часового пояса. – arora
вы можете использовать TimeZone.getDefault(), он дает вам часовой пояс по умолчанию и экземпляр календаря по умолчанию выбирает часовой пояс по умолчанию – Aditi