从TimePicker
中选择一个时间后,我使用setText()
显示该内容,但到目前为止一切正常,但问题是,如果我选择05:09
,我只会得到在5:9 PM
中显示TextView
。我想念前面的零。但我要求
以下是我使用的代码:
public void onTimeSet(TimePicker timePicker,int selectedHour, int selectedMinute)
{
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, selectedHour);
calendar.set(Calendar.MINUTE, selectedMinute);
int c_hour,c_min;
String format;
c_hour=selectedHour;
c_min=selectedMinute;
if (c_hour == 0) {
c_hour += 12;
format = "AM";
}
else if (c_hour == 12) {
format = "PM";
}
else if (c_hour > 12) {
c_hour -= 12;
format = "PM";
}
else {
format = "AM";
}
TextView dimple = (TextView)findViewById(R.id.timeText);
dimple.setText(new StringBuilder().
append(c_hour).append(" : ").append(c_min).append(" ").append(format));
解决这个问题的快捷方法是什么?
答案 0 :(得分:5)
你可以通过加前缀零来获得时间。
String formatTime =
String.format("%02d : %02d", hour, minute)
;
或强>
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
String formatTime = new SimpleDateFormat("hh:mm a").format(cal.getTime());
答案 1 :(得分:1)
您可以使用SimpleDateFormat构建时间字符串,如下所述:
Convert java.util.Date to String
在您的情况下,您可以使用“HH:mm a”作为格式。
因此,您的示例代码应如下所示:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, selectedHour);
calendar.set(Calendar.MINUTE, selectedMinute);
DateFormat dateFormat = new SimpleDateFormat("HH:mm a");
Date dateValue = calendar.getTime();
String requiredTime = dateFormat.format(dateValue);
TextView dimple = (TextView)findViewById(R.id.timeText);
dimple.setText(requiredTime);
希望有所帮助:)
答案 2 :(得分:0)
String str_hour = c_hour<10 ? "0"+String.valueOf(c_hour):String.valueOf(c_hour);
String str_min = c_min<10 ? "0"+String.valueOf(c_min):String.valueOf(c_min);