如何在TextView中显示hh:mm?

How show hh:mm in TextView?

我想使用以下代码在 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));

当时间例如 12:03 在 TextView 中显示为 12:3

时出现问题

我该如何解决这个问题?

使用此代码将分钟格式化为 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));

我遇到了同样的问题并由此解决了。 可能这不是最好的解决方案,但它对我有用。

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

您可以像这样将日期格式化为字符串(使用 java.text.SimpleDateFormat)

holder.tvTime.setText(new SimpleDateFormat("H:mm").format(mDate));

H 格式说明符表示一天中的小时 (0-23),mm 表示带两位数的小时中的分钟。

有关其他格式选项,请参阅 documentation