java.lang.NumberFormatException:无效整数:“下午 24 点”
java.lang.NumberFormatException: Invalid int: "24 pm"
当我使用 TimePicker 选择时间时,我的应用程序崩溃了。
如何解决这个问题?
请指导我。
当我打印 timeMinute
System.out: 30 am
我得到一个
此行错误 Integer.parseInt(timeMinute.replace(" am","")), true);
start_time.setInputType(InputType.TYPE_NULL);
start_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String time = start_time.getText().toString();
if (time != null && !time.equals("")) {
StringTokenizer st = new StringTokenizer(time, ":");
String timeHour = st.nextToken();
String timeMinute = st.nextToken();
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace(" am","")), true);
} else {
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), 10, 45, true);
}
timePickDialog.show();
}
});
private class TimePickHandler implements TimePickerDialog.OnTimeSetListener {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//start_time.setText(hourOfDay + ":" + minute);
int hour = hourOfDay % 12;
if (hour == 0)
hour = 12;
start_time.setText(String.format("%02d:%02d %s", hour, minute,hourOfDay < 12 ? "am" : "pm"));
timePickDialog.hide();
}
}
您可以执行以下操作:
if (time != null && !time.equals("")) {
StringTokenizer st = new StringTokenizer(time, ":");
String timeHour = st.nextToken();
String timeMinute = st.nextToken();
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace(" am","").replace(" pm","")), true);
}
将“上午”和“下午”替换为“”。
一个较短的解决方案,只是为了提供使用双 replace()
的替代方法,将使用正则表达式:
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace("\s[a|p]m", ""), true);
当我使用 TimePicker 选择时间时,我的应用程序崩溃了。
如何解决这个问题?
请指导我。
当我打印 timeMinute
System.out: 30 am
我得到一个
此行错误 Integer.parseInt(timeMinute.replace(" am","")), true);
start_time.setInputType(InputType.TYPE_NULL);
start_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String time = start_time.getText().toString();
if (time != null && !time.equals("")) {
StringTokenizer st = new StringTokenizer(time, ":");
String timeHour = st.nextToken();
String timeMinute = st.nextToken();
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace(" am","")), true);
} else {
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), 10, 45, true);
}
timePickDialog.show();
}
});
private class TimePickHandler implements TimePickerDialog.OnTimeSetListener {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//start_time.setText(hourOfDay + ":" + minute);
int hour = hourOfDay % 12;
if (hour == 0)
hour = 12;
start_time.setText(String.format("%02d:%02d %s", hour, minute,hourOfDay < 12 ? "am" : "pm"));
timePickDialog.hide();
}
}
您可以执行以下操作:
if (time != null && !time.equals("")) {
StringTokenizer st = new StringTokenizer(time, ":");
String timeHour = st.nextToken();
String timeMinute = st.nextToken();
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace(" am","").replace(" pm","")), true);
}
将“上午”和“下午”替换为“”。
一个较短的解决方案,只是为了提供使用双 replace()
的替代方法,将使用正则表达式:
timePickDialog = new TimePickerDialog(v.getContext(),
new TimePickHandler(), Integer.parseInt(timeHour),
Integer.parseInt(timeMinute.replace("\s[a|p]m", ""), true);