Android Can';从时间选择器格式化时间
当前正在尝试从时间选择器提醒小时(selectedHour)和提醒分钟(selectedMin)获取两个不同的值。我以为它工作得很好,但今天早上又发现了一个错误Android Can';从时间选择器格式化时间,android,android-timepicker,Android,Android Timepicker,当前正在尝试从时间选择器提醒小时(selectedHour)和提醒分钟(selectedMin)获取两个不同的值。我以为它工作得很好,但今天早上又发现了一个错误 eReminderTime.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method s
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(AddPayment.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
reminderHour = selectedHour;
reminderMin = selectedMinute;
if (selectedHour < 10)
{
if(selectedMinute == 0)
{
eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
}
else if(selectedMinute < 10)
{
eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
}
}
if (selectedHour == 0)
{
if(selectedMinute == 0)
{
eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute);
}
else if(selectedMinute < 10)
{
eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText("0" + selectedHour + ":" + selectedMinute);
}
}
if(selectedMinute == 0)
{
eReminderTime.setText("" + selectedHour + ":00" + selectedMinute);
}
if(selectedMinute < 10)
{
eReminderTime.setText("" + selectedHour + ":0" + selectedMinute);
}
else
{
eReminderTime.setText( "" + selectedHour + ":" + selectedMinute);
}
}
}, hour, minute, true);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
这是因为单个hh和mm格式无效。尝试将分钟和小时值组合在一起,当收到组合值时,通过
split()
e、 g
你到底想要什么样的输出? 如果是这样的话:
01:32
然后,自己生成一个字符串就很简单了,而不用担心日期格式等问题
//Add leading zeros if required
String hours = (String) ((selectedHour < 10) ? "0" + selectedHour
: Integer.toString(selectedHour));
String minutes = (String) ((selectedMinute < 10) ? "0" + selectedMinute
: Integer.toString(selectedMinute));
String prettyTime = hours + ":" + minutes;
//如果需要,添加前导零
字符串小时数=(字符串)((selectedHour<10)?“0”+selectedHour
:Integer.toString(selectedHour));
字符串分钟数=(字符串)((selectedMinute<10)?“0”+selectedMinute
:Integer.toString(selectedMinute));
字符串prettyTime=小时+“:”+分钟;
编辑了我的帖子,最初是kk表示小时,这是SimpleDataFormatWith的Java页面中显示的,kk表示小时,mm表示分钟,我打印了00,01,00,01,我想如果你把hh或hh放进去会怎么样?是的,24小时输出hh:mm,所以下午5点应该是17:00。代码中的“?”是什么意思?它是“三元运算符”。基本上,您可以将?
理解为“如果前面的表达式为真,则值为”,将:
理解为“否则值为”。这将根据需要生成24小时字符串形式的时间
SimpleDateFormat simpleHour= new SimpleDateFormat("hh:mm");
String strTime = sdf.format(new Date());
String[] pieces=strTime.split(":");
Log.i("Hour: ",pieces[0]);
Log.i("Miniute: ",pieces[1]);
//Add leading zeros if required
String hours = (String) ((selectedHour < 10) ? "0" + selectedHour
: Integer.toString(selectedHour));
String minutes = (String) ((selectedMinute < 10) ? "0" + selectedMinute
: Integer.toString(selectedMinute));
String prettyTime = hours + ":" + minutes;