2015-03-16 2 views
1

Я написали код для выбора времени. Мое текущее время в сборщике времени показывает на 12 часов меньше фактического текущего времени. Может кто-нибудь из вас, пожалуйста, сообщите мне, что мне здесь не хватает. Все предложения приветствуются. Заранее спасибо.Я получаю время, которое на 12 часов меньше, чем текущее время со времени выбора

My Time Код выбора:

public void showTimePicker() { 

     TimePickerFragment time1 = new TimePickerFragment(); 

     /** 
     * Set Up Current Time Into dialog 
     */ 

     Calendar calendar = Calendar.getInstance(); 
     Bundle args = new Bundle(); 
     args.putInt("Hour", calendar.get(Calendar.HOUR)); 
     args.putInt("Minute", calendar.get(Calendar.MINUTE)); 

     time1.setArguments(args); 
     /** 
     * Set Call back to capture selected time 
     */ 
     time1.setCallBack(onTime); 
     time1.show(getFragmentManager(), "Time Picker"); 


    } 

    TimePickerDialog.OnTimeSetListener onTime = new TimePickerDialog.OnTimeSetListener() { 


     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 


      time.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute)); 
      timeValue1 = time.getText().toString(); 


     } 
    }; 

My Time фрагмент выбора:

public class TimePickerFragment extends DialogFragment { 


    TimePickerDialog.OnTimeSetListener onTimeSet; 


    public TimePickerFragment() { 

    } 

    public void setCallBack(TimePickerDialog.OnTimeSetListener onTime) { 

     onTimeSet = onTime; 


    } 

public int hour, minute; 


    @Override 
    public void setArguments(Bundle args) { 
     super.setArguments(args); 
     hour = args.getInt("Hour"); 
     minute = args.getInt("Minute"); 

    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     return new TimePickerDialog(getActivity(), onTimeSet, hour, minute, true); 
    } 

} 

Если вам нужно больше информации, пожалуйста, дайте мне знать.

ответ

3

Вы используете Calendar.get(Calendar.HOUR), который определяется следующим образом:

ЧАС номер поля для получения и установки с указанием часа утром или днем.

Я думаю, вам нужно использовать Calendar.HOUR_OF_DAY, то TimePicker будет обрабатывать AM/PM (я предполагаю).

В настоящее время, с 14:00 (14:00), будет возвращаться 2 как час, поэтому вы утратите вечер/полдень.

+0

Большое спасибо. Это решило мою проблему. – Keshav1234