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

标签 android datetime motorola nexus-5

我在从 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.replace("\\.",""), inputField);

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

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

关于Android 时间格式问题 - 它以 A.M/P.M 的形式出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37676984/

相关文章:

c++ - Windows CE 7.0 应用程序无法分步调试

Android 4.4.4 Moto G Bluetooth LE 重新连接问题

android - 我如何在 Android 上像 StackOverflow 使用的那样链接标记?

c# - sql转换日期转换错误的原因是什么?

python - Pandas :合并时间范围条件

javascript - 处理阿拉伯语言区域时正确格式化本地 UTC 日期字符串

Android Eclipse 支持库 : Required version blank

java - 重启后第二天闹钟管理器不起作用

android - 在 Android 的实验性 Gradle 插件中添加发布 key

assembly - 如何将字节移动到数据寄存器中的特定位置?