日历.分钟给出分钟,不带前导零

2022-09-01 12:20:17

嗨,我使用下面的代码来获得Android手机时间,但是如果分钟数在1到9之间,它会给我分钟数,而不会为零。

例如:现在我有时间在我的设备上12:09,但它给了我12:9

Calendar c = Calendar.getInstance();
int hrs = c.get(Calendar.HOUR);
int mnts = c.get(Calendar.MINUTE);
String curTime = "" + hrs + ":" + mnts;
return curTime;

在上面的代码之后,我也尝试下面的代码,它给出与上面相同的东西,没有零的分钟数之前,它的大小在1到9之间。.

final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
Date date = cal.getTime();
int mHour = date.getHours();
int mMinute = date.getMinutes();

答案 1

正如Egor所说,an只是一个整数。整数没有前导零。它们只有在将它们转换为对象时才能以前导零显示。一种方法是这样的:intString

String curTime = String.format("%02d:%02d", hrs, mnts);

格式字符串使用前导零(即 in )格式化整数,始终占用 2 位数字的宽度(即 in )。%02d0%02d2%02d

这将产生String

12:09


答案 2

所有关于整数的说法都是关于整数的。但是,处理日期和日历以显示该信息应按如下方式使用:

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yourpattern"); //like "HH:mm" or just "mm", whatever you want
String stringRepresentation = sdf.format(date);

如果模式“mm”介于 0 和 9 之间,它将具有前导零。如果你使用“mmmm”,你会得到0009,这看起来没有多大意义,但这完全取决于你想要什么。:)

如果您使用模式,您将获得(日期实例的当前时间)。HH:mm12:09


推荐