Calendar.MINUTE给出分钟而没有前导零

时间:2012-07-22 11:36:13

标签: java android

大家好我正在使用下面的代码来获取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();

5 个答案:

答案 0 :(得分:83)

正如叶戈尔所说,int只是一个整数。整数没有前导零。当您将它们转换为String个对象时,它们只能显示并带有前导零。一种方法是这样的:

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

格式字符串%02d格式化一个前导零的整数(0中的%02d),总是占用宽度的2位数(即2中的%02d {1}})。

这会产生String

  

12:09

答案 1 :(得分:14)

所有关于整数的说法。但处理日期和日历以显示该信息应该像这样使用:

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:mm,您将获得12:09(日期实例的当前时间)。

答案 2 :(得分:1)

您可以使用SimpleDateFormat类

格式化日期

如果您从日历实例获取日期和时间: -

final Calendar c = Calendar.getInstance();

SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm");
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");

timeEdittext.setText(timeFormat.format(c.getTime()));
dateEdittext.setText(dateFormat.format(c.getTime()));

如果你有天,月,年,小时,分钟为整数(通常发生在datepicker和timepicker对话框中)

Calendar calendar = Calendar.getInstance();

calendar.set(year, month, dayOfMonth);
String date = new SimpleDateFormat("dd-MM-yyyy").format(calendar.getTime());

答案 3 :(得分:0)

function time()
{
  var time = new Date();
  var hh = time.getHours();
  var mmm = time.getMinutes();

  if(mmm<10) 
  {
    mmm='0'+mmm
  } 

  time = 'T'+hh+':'+mmm;
  return time;
}

答案 4 :(得分:0)

使用以下方法以双格式转换Hour:Minute

/*
* make double format hour:minute string
* @hour : 1
* @minute : 2
* return : 01:02
* */

public static String hourMinuteZero(int hour,int mnts){
    String hourZero = (hour >=10)? Integer.toString(hour):String.format("0%s",Integer.toString(hour));
    String minuteZero = (mnts >=10)? Integer.toString(mnts):String.format("0%s",Integer.toString(mnts));
    return hourZero+":"+minuteZero;
}