29

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

5 回答 5

100

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

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

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

这将产生String

12:09

于 2012-07-22T11:54:18.677 回答
15

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

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(您的日期实例的当前时间)。

于 2012-07-22T11:59:36.500 回答
4

您可以使用 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()));

如果你有日、月、年、小时、分钟作为整数(通常发生在日期选择器和时间选择器对话框中)

Calendar calendar = Calendar.getInstance();

calendar.set(year, month, dayOfMonth);
String date = new SimpleDateFormat("dd-MM-yyyy").format(calendar.getTime());
于 2017-03-20T15:01:56.827 回答
2

使用以下方法以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;
}
于 2018-03-06T14:55:23.523 回答
1
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;
}
于 2016-02-26T04:57:15.173 回答