我已经创建了简单的TimePickerDialog,但是如果我已经设置了当前时间选择器,那么设置AM和PM就会出现问题。
让我们看看......
如果当前时间是:下午5:39
这是我的代码..
Calendar cal = Calendar.getInstance();
int mHour = cal.get(Calendar.HOUR_OF_DAY);
int mMinute = cal.get(Calendar.MINUTE);
int mTimeSet=cal.get(Calendar.AM_PM);
TimePickerDialog tpd = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker view, int hours,int minute)
{
String timeSet = "";
if (hours > 12) {
hours -= 12;
timeSet = "PM";
} else if (hours == 0) {
hours += 12;
timeSet = "AM";
} else if (hours == 12)
timeSet = "PM";
else
timeSet = "AM";
String minutes="";
if (minute < 10)
minutes = "0" + minute;
else
minutes = String.valueOf(minute);
textView.setText(hours + ":" + minutes + " " + timeSet);
}
}, mHour, mMinute,false);
tpd.show();
结果
但如何在时间选择器对话框中设置PM? 请任何解决方案
答案 0 :(得分:2)
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
String am_pm = "";
Calendar datetime = Calendar.getInstance();
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.MINUTE, minute);
if (datetime.get(Calendar.AM_PM) == Calendar.AM)
am_pm = "AM";
else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
am_pm = "PM";
String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+"";
((Button)getActivity().findViewById(R.id.btnEventStartTime)).setText(
strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );
}
答案 1 :(得分:1)
private void updateTime(int hours, int mins) {
String timeSet = "";
if (hours > 12) {
timeSet = "PM";
hours -= 12;
} else if (hours == 0) {
timeSet = "AM";
hours += 12;
} else if (hours == 12)
timeSet = "PM";
else
timeSet = "AM";
String minutes = "";
if (mins < 10)
minutes = "0" + mins;
else
minutes = String.valueOf(mins);
// Append in a StringBuilder
String aTime = new StringBuilder().append(hours).append(':')
.append(minutes).append(" ").append(timeSet).toString();
output.setText(aTime);
}
答案 2 :(得分:1)
尝试这样,
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, hourOfDay);
date.set(Calendar.MINUTE, minute);
date.set(Calendar.AM_PM, date.get(Calendar.AM_PM));
textView.setText(date.getTime());
}