将整数分钟转换为字符串“hh:mm”

我需要将minutes (定义为整数)转换为以下字符串格式“hh:mm”,假设startTime为“00:00”。 下面给出的代码是我目前所拥有的,但它无法正常工作。 此外,它没有考虑newTime应该根据startTime进行移位。 还有其他解决方案吗?

 String startTime = "00:00"; int minutes = 120; double time = minutes/60; String timeS = Double.toString(time); String[] hourMin = timeS.split("."); String h = hourMin[0]; String m = hourMin[1]; String newTime = ""; newTime.concat(h+":"+m); 

 String startTime = "00:00"; int minutes = 120; int h = minutes / 60 + Integer.parseInt(startTime.substring(0,1)); int m = minutes % 60 + Integer.parseInt(startTime.substring(3,4)); String newtime = h+":"+m; 

干得好:

 /*Output: 02:05 */ public String fromMinutesToHHmm(int minutes) { long hours = TimeUnit.MINUTES.toHours(Long.valueOf(minutes)); long remainMinutes = min - TimeUnit.HOURS.toMinutes(hours); return String.format("%02d:%02d", hours, remainMinutes); } 

Kotlin

 class DateUtils { companion object { fun fromMinutesToHHmm(minutes: Int): String { val hours = TimeUnit.MINUTES.toHours(minutes.toLong()) val remainMinutes = minutes - TimeUnit.HOURS.toMinutes(hours) return String.format("%02d:%02d", hours, remainMinutes) } } } 

我最近写了这篇文章,将秒数转换为小时,分钟和秒; 根据需要调整它(用冒号代替“s”,“m”,“h”,省略秒等)。

编辑:在尝试快速改进之后修复代码中的愚蠢错误。

 private static String getFormattedTime(int secs) { // int secs = (int) Math.round((double) milliseconds / 1000); // for millisecs arg instead of secs if (secs < 60) return secs + "s"; else { int mins = (int) secs / 60; int remainderSecs = secs - (mins * 60); if (mins < 60) { return (mins < 10 ? "0" : "") + mins + "m " + (remainderSecs < 10 ? "0" : "") + remainderSecs + "s"; } else { int hours = (int) mins / 60; int remainderMins = mins - (hours * 60); return (hours < 10 ? "0" : "") + hours + "h " + (remainderMins < 10 ? "0" : "") + remainderMins + "m " + (remainderSecs < 10 ? "0" : "") + remainderSecs + "s"; } } } 
 String startTime = "00:00"; int minutes = 120; //--- counting int hour = minutes/60; minutes=minutes-hours*60; String m = Integer.toString(minutes); String h = Integer.toString(hours); newTime=h+":"+m; 
 int ALLTIME_IN_MINUTES = 1444 int hour = ALLTIME_IN_MINUTES /60; int min = ALLTIME_IN_MINUTES %60; String dateStr = hour+":"+min; SimpleDateFormat curFormater = new SimpleDateFormat("H:m"); Date dateObj = curFormater.parse(dateStr); SimpleDateFormat postFormater = new SimpleDateFormat("HH:mm"); String newDateStr = postFormater.format(dateObj); 

结果:24:04

apines的答案很好,但是如果你想在Android中删除警告,请添加’Locale’:

 int hours = 3; int minutes = 6; private static final String TIME_SEPARATOR = ":"; String.format(Locale.getDefault(), "%02d"+TIME_SEPARATOR+"%02d", hours, minutes); 
 int minutes = 129; double hoursAndMinutes = (minutes / 60) + (double) minutes % 60 / 100; String hoursAndMinutesStr = new DecimalFormat("0.00").format(hoursAndMinutes).replace('.', ':'); System.out.println(hoursAndMinutesStr);