Android 时间格式问题 - 它以 A.M / P.M 的形式出现

Android Time Format issue - Its coming as A.M / P.M

我在从 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);
 }

在 selectedTime 上,我得到的时间格式类似于 10:40 A.M 或 P.M 而不是 AM 或 PM。

当我将其传递给 API 时出现问题,就像我们这样发送一样,它会导致其他具有正常格式的手机的日期格式转换出现问题。

那么有什么方法可以在 AM 和 PM 中获取时间格式而不是上述设备中的 A.M 或 P.M?

改变

fragment.onTimeSelected(selectedTime, inputField);

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

我已经通过以下方式解决了

将 , 替换为空

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

并且在转换过程中,请指定语言环境。

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