я использую эту функцию, чтобы получить текущее время на реальном устройстве (проверено на Galaxy S4):получает неправильный часовой пояс андроида
private String getCurrentTime(){
TimeZone mtz = TimeZone.getTimeZone(TimeZone.getDefault().toString());
Calendar calendar = Calendar.getInstance(mtz);
String current_time = calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
return current_time ;
}
, но в режиме реального времени (например):
18: 48:16
возвращаемое значение функции:
14:17:41
Автоматическая дата & время и автоматический часовой пояс по телефону проверено!
, но эта функция работает:
private String getCurrentTime(){
TimeZone mtz = TimeZone.getTimeZone("GMT+04:30");
Calendar calendar = Calendar.getInstance(mtz);
String current_time = calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND);
return current_time ;
}
Другой вопрос:
Когда я изменяю время на телефоне, возвращаемое значение 2 предыдущих изменений функции, как я могу это предотвратить? Другими словами, Как я могу получить в реальном времени (Без подключения к интернету)?
tnx, now Как я могу получить реальное время? –
Единственный способ, который я знаю в таком случае, - получить приблизительно текущее время от GPS-исправлений, которые содержат отметки времени UTC, которые могут быть легко преобразованы в локальное представление времени SimpleDateFormat. –