Отображение текущего времени в TimePicker в android

Я использую этот код, чтобы показать текущее время в TimePicker, но я действительно не знаю, почему он не отображается правильно !? Например, сейчас время (системное время) составляет 2:56 вечера, но это показывает 2:56 утра !. Как я могу это решить? Благодарю.

private long timer1 = 0; ... switch (view.getId()) { case R.id.add1: { if (timer1 == 0) { timer1 = getCurrentTime(); } Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timer1); TimePicker timePicker = (TimePicker) findViewById(R.id.tp_1); timePicker.setCurrentHour(calendar.get(Calendar.HOUR)); timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE)); break; . .. } private long getCurrentTime() { Calendar calendar = GregorianCalendar.getInstance(); return calendar.getTimeInMillis(); } 

А также у меня такая же проблема, когда я хочу преобразовать это время в форму String с помощью этого метода ниже:

 private String convertTimeToString(long time) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); int hour = calendar.get(Calendar.HOUR_OF_DAY); //int hour = get; int minute = calendar.get(Calendar.MINUTE); String timeSet; if (hour > 12) { hour -= 12; timeSet = "PM"; } else if (hour == 0) { hour += 12; timeSet = "AM"; } else if (hour == 12) { timeSet = "PM"; } else { timeSet = "AM"; } String minutes; if (minute < 10) { minutes = "0" + minute; } else { minutes = String.valueOf(minute); } // Append in a StringBuilder return String.format("%s:%s %s", hour, minutes, timeSet); } 

пожалуйста помогите!

обновленный
1) проблема с неправильным часом: попробуйте изменить код следующим образом:

 ... timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY)); ... 

2) проблема строкового представления: общий подход к преобразованию даты / времени в строку следующий:

 String format = "hh:mm"; // or any other format - see note below SimpleDateFormat formatter = new SimpleDateFormat(format); formatter.format(yourDate); 

Или когда вы используете long временную метку, последняя строка будет:

 formatter.format(new Date(yourLongTimestamp)); 

Полезные ссылки :
Различные символы формата даты / времени, которые вы можете посмотреть здесь .
Проверьте различные шаблоны форматов, которые вы можете здесь .

 // display current time public void setCurrentTimeOnView() { tvDisplayTime = (TextView) findViewById(R.id.tvTime); timePicker1 = (TimePicker) findViewById(R.id.timePicker1); final Calendar c = Calendar.getInstance(); hour = c.get(Calendar.HOUR_OF_DAY); minute = c.get(Calendar.MINUTE); // set current time into textview tvDisplayTime.setText( new StringBuilder().append(pad(hour)) .append(":").append(pad(minute))); // set current time into timepicker timePicker1.setCurrentHour(hour); timePicker1.setCurrentMinute(minute); } 

Заменить эту строку:

 timePicker.setCurrentHour(calendar.get(Calendar.HOUR)); 

Для того, чтобы:

 hourStart = c.get(Calendar.HOUR_OF_DAY); 
Intereting Posts
Запуск автозапуска при загрузке телефона Сохранить анимационный просмотр в финальной анимационной позиции Как фильтровать MotionEvent.getAction () на уровне API 3 (нет ACTION_MASK) Как я могу ссылаться на класс drawable в Android XML Realm – как закрыть экземпляр realm с транзакцией async Android-приложение не разбивается, но не реагирует на неотображаемые исключения Как вызвать действие (принадлежащее модулю) в другом модуле на Android? Я не могу получить реальный путь к съемной SD-карте. Есть ли способ получить? Как запретить Android делать снимок экрана, когда мое приложение переходит на задний план? Android.content.ActivityNotFoundException: Невозможно найти явный класс активности Есть ли хорошие ORM (желательно JPA-реализации), поддерживающие SQLite (на Android)? AddAllowedApplication (String packageName) метода класса VPNService.Buildr не работает на уровне 14 api Как отправить уведомление с сервера php на приложение для Android Центрируйте CardView в RecyclerView только с одним элементом Как я могу обрабатывать пустой корпус ответа с помощью Retrofit 2?