我在从 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/