我有一个问题,显示一个人计算的睡眠周期正确的上午/下午。例如,用户在早上7点点击醒来时间,应用程序应在下午11:15返回睡眠时间。在我的应用程序中,它显示11:15 AM而不是PM。Timepicker上午/下午返回错误android
你能帮助我与我有什么到目前为止已经试过:
private TimePickerDialog.OnTimeSetListener timePickerListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour,
int selectedMinute) {
// Gets current time
Calendar c = Calendar.getInstance();
hour = selectedHour;
minute = selectedMinute;
// set waking time into textview
StringBuilder sb = new StringBuilder();
if(hour>=12){
sb.append(hour-12).append(":").append(minute).append(" PM");
}else{
sb.append(hour).append(":").append(minute).append(" AM");
}
wakingtime.setText(sb);
// Assign hour set in the picker
c.set(Calendar.HOUR, selectedHour);
c.set(Calendar.MINUTE, selectedMinute);
// Have Calendar calculate the substraction of hours and minutes
c.add(Calendar.HOUR, SUB_HOUR);
c.add(Calendar.MINUTE, SUB_MINUTE);
// Get the hour and the minute calculated
hour = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
StringBuilder sb2 = new StringBuilder();
if(hour>=12){
sb2.append(hour-12).append(":").append(minute).append(" PM");
}else{
sb2.append(hour).append(":").append(minute).append(" AM");
}
answer.setText(sb2);
// set current time into textview
//answer.setText("You must go to bed at " + new StringBuilder().append(pad(hour))
// .append(":").append(pad(minute)));
}
};
任何帮助是真正的赞赏!谢谢。
如果(小时> = 12)在此行上放置一个断点,请运行您的代码,直到达到断点。小时是什么值? – Simon
@Simon,[文档](http://developer.android.com/reference/android/app/TimePickerDialog.OnTimeSetListener.html)说它是“hourOfDay”。所以这必须是24小时格式。 – varevarao
好点,所以继续并回答。小时= c.set(Calender.HOUR_OF_DAY); – Simon