2016-06-07 13 views
1

Я получаю проблему при получении формата даты времени с устройств Moto X и Nexus 5X. Ниже приведен код, который я использую.Проблема с форматом времени в формате Android - его приближение как A.M/P.M

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

    SimpleDateFormat mSDF = null; 
    final String format = Settings.System.getString(fragment.getActivity() 
    .getContentResolver(), Settings.System.TIME_12_24); 
    boolean is24HourFormat = android.text.format.DateFormat 
    .is24HourFormat(getActivity()); 

    mSDF = new SimpleDateFormat("hh:mm a", Locale.ENGLISH); 

    System.out.println("Time Format:" + format); 
    Calendar mCalendar = Calendar.getInstance(); 
    mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
    mCalendar.set(Calendar.MINUTE, minute); 

    String selectedTime = mSDF.format(mCalendar.getTime()); 

    fragment.onTimeSelected(selectedTime, inputField); 
} 

В выбранное время Я получаю формат времени, например, 10:40 A.M или P.M вместо AM или PM.

Что делает проблему, когда я передаю это API, Как будто мы отправляем как это, это вызовет проблему в форме преобразования даты на другом мобильном телефоне, который имеет нормальный формат.

Итак, есть ли способ получить Timeformat в AM, PM вместо A.M или P.M в вышеупомянутом устройстве?

+0

просто замените (".", "") На строку времени –

+0

Вам это удалось? У меня такая же проблема, но это происходит только на Nexus 5X –

+0

@Vincent_Paing, да, мы разрешили ее, следуя. Пожалуйста, сделайте это, замените, с пустым fragment.onTimeSelected (selectedTime.replace ("\\.", ""), InputField); SimpleDateFormat dateFormat = new SimpleDateFormat ( "yyyy-MM-dd HH: mm: ss", Locale.ENGLISH); – Lakshmanan

ответ

1

меня разрешить его следующим образом.

Заменить, с пустым

fragment.onTimeSelected(selectedTime.replace("\\.",""), inputField); 

и во время преобразования, пожалуйста, указать локаль.

SimpleDateFormat dateFormat = new SimpleDateFormat(
     "yyyy-MM-dd HH:mm:ss",Locale.ENGLISH); 
0

Изменить

fragment.onTimeSelected(selectedTime, inputField); 

в

fragment.onTimeSelected(selectedTime.replace(".",""), inputField);