如何在TextView中显示hh:mm?

时间:2018-02-17 08:01:23

标签: android textview string-formatting

我希望使用下面的代码在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

时,会出现问题

我该如何解决这个问题?

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);