Проблема с форматом времени Android - она ​​появится как AM / PM

У меня возникают проблемы при получении формата даты и времени с устройств Moto X и Nexus 5X. Ниже приведен код, который я использую.

@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 утра или вечера вместо утра или вечера.

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

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


person Lakshmanan    schedule 07.06.2016    source источник
comment
просто замените (.,) в вашей строке времени   -  person Sathish Kumar J    schedule 07.06.2016
comment
Вам удалось это решить? У меня такая же проблема, но только на Nexus 5X.   -  person Vincent_Paing    schedule 15.06.2016
comment
@Vincent_Paing, да, мы решили это, следуя инструкциям. Пожалуйста, сделайте это, Замените пустым фрагментом.onTimeSelected(selectedTime.replace(\\.,), inputField); SimpleDateFormat dateFormat = новый SimpleDateFormat (гггг-ММ-дд ЧЧ: мм: сс, Locale.ENGLISH);   -  person Lakshmanan    schedule 15.06.2016


Ответы (2)


Я решил это следующим образом.

Заменить на пустой

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

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

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

Изменять

fragment.onTimeSelected(selectedTime, inputField);

to

fragment.onTimeSelected(selectedTime.replace(".",""), inputField);
person dave    schedule 07.06.2016