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

You*_*per 11 java time

我需要将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);
Run Code Online (Sandbox Code Playgroud)

api*_*nes 29

干得好:

/*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);
}
Run Code Online (Sandbox Code Playgroud)

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

    }

}
Run Code Online (Sandbox Code Playgroud)

  • 你甚至可以将它缩短为:`String.format("%02d:%02d",hours,remainingMinutes);` (6认同)
  • `TimeUnit`是要走的路,不再需要手动转换. (2认同)

Far*_*mor 8

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;
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用String.format,例如String.format("%02d",小时). (2认同)
  • 此代码完全不正确 - 它不处理从分钟字段到小时字段的溢出. (2认同)

小智 6

int minutes = 120;

int h = minutes / 60;
int m = minutes % 60;

String.format("%02d:%02d",h,m); // output : "02:00"
String.format("%d:%d",h,m); // output : "2:0"

Run Code Online (Sandbox Code Playgroud)