我希望使用下面的代码在TextView中显示时间。
PersianCalendar persianCalendar = new PersianCalendar();
persianCalendar.setTime(mDate);
Calendar cal = Calendar.getInstance();
cal.setTime(mDate);
holder.tvTime.setText(cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE));
当TextView中的时间12:03
显示为12:3
我该如何解决这个问题?
答案 0 :(得分:4)
您可以将Date格式化为这样的字符串(使用java.text.SimpleDateFormat)
holder.tvTime.setText(new SimpleDateFormat("H:mm").format(mDate));
H
格式说明符表示小时(0-23),而mm
表示以小时为单位的两位数。
有关其他格式选项,请参阅documentation。
答案 1 :(得分:1)
使用此代码格式化2位数的分钟..
holder.tvTime.setText(String.format("%d:%02d",cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
修改 - 正如@henry所建议的......你可以直接使用它。holder.tvTime.setText(String.format("%d:%02d",cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
答案 2 :(得分:0)
我有同样的问题,并由此解决。 可能它不是最好的解决方案,但它对我有用。
PersianCalendar persianCalendar = new PersianCalendar();
persianCalendar.setTime(mDate);
Calendar cal = Calendar.getInstance();
cal.setTime(mDate);
String minuteSelected = String.valueOf(cal.get(Calendar.MINUTE));
String minutWith0 = ((minuteSelected.length() == 1 ? "0" + minuteSelected : minuteSelected));// to get minut "01" insted of "1"
holder.tvTime.setText(cal.get(Calendar.HOUR_OF_DAY)+":"+ minutWith0);