Java 只需几小时和几分钟
我有问题。我只需要计算小时和分钟,而不是天Java 只需几小时和几分钟,java,timeunit,Java,Timeunit,我有问题。我只需要计算小时和分钟,而不是天 import java.util.concurrent.TimeUnit; public class TimeUtils { public static String millisecondToFullTime(long millisecond) { return timeUnitToFullTime(millisecond, TimeUnit.MILLISECONDS); } public static S
import java.util.concurrent.TimeUnit;
public class TimeUtils {
public static String millisecondToFullTime(long millisecond) {
return timeUnitToFullTime(millisecond, TimeUnit.MILLISECONDS);
}
public static String secondToFullTime(long second) {
return timeUnitToFullTime(second, TimeUnit.SECONDS);
}
public static String minutesToFullTime(long minutes) {
return timeUnitToFullTime(minutes, TimeUnit.MINUTES);
}
public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
long day = timeUnit.toDays(time);
long hour = timeUnit.toHours(time) % 24;
long minute = timeUnit.toMinutes(time) % 60;
long second = timeUnit.toSeconds(time) % 60;
if (day > 0) {
return String.format("%d day %02d:%02d:%02d", day, hour, minute, second);
} else if (hour > 0) {
return String.format("%d:%02d:%02d", hour, minute, second);
} else if (minute > 0) {
return String.format("%d:%02d", minute, second);
} else {
return String.format("%02d", second);
}
}
}
这段代码如何在java中只计算小时和分钟?
现在我在几小时和几分钟内得到结果。有些函数返回毫秒到全时,有些函数返回分钟到全时。
如果我注释掉day If子句,它将无法正确计算
如果参数相当于1天5小时30分钟,则应返回
29:30:00
您需要从long hour=timeUnit.toHours(time)%24中删除模块操作代码>因为这将以小时为单位计算时间,并删除与一天相关的所有内容。您的方法将以如下方式结束:
public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
long hour = timeUnit.toHours(time);
long minute = timeUnit.toMinutes(time) % 60;
long second = timeUnit.toSeconds(time) % 60;
if (hour > 0) {
return String.format("%d:%02d:%02d", hour, minute, second);
} else if (minute > 0) {
return String.format("%d:%02d", minute, second);
} else {
return String.format("%02d", second);
}
}
您需要从long hour=timeUnit.toHours(time)%24中删除模块操作代码>因为这将以小时为单位计算时间,并删除与一天相关的所有内容。您的方法将以如下方式结束:
public static String timeUnitToFullTime(long time, TimeUnit timeUnit) {
long hour = timeUnit.toHours(time);
long minute = timeUnit.toMinutes(time) % 60;
long second = timeUnit.toSeconds(time) % 60;
if (hour > 0) {
return String.format("%d:%02d:%02d", hour, minute, second);
} else if (minute > 0) {
return String.format("%d:%02d", minute, second);
} else {
return String.format("%02d", second);
}
}
你期望的结果是什么?如果参数相当于1天5小时30分钟,您是要29:30:00还是仅仅5:30:00?它应该返回29:30:00,这样您就可以从小时计算中删除所有的日期引用和%24
,从而得到正确的结果?如果没有,你能更好地解释一下,你希望得到什么样的结果?好的,我已经把它作为一个答案发布了,这样答案就不会在评论中丢失。你想要的结果是什么?如果参数相当于1天5小时30分钟,您是要29:30:00还是仅仅5:30:00?它应该返回29:30:00,这样您就可以从小时计算中删除所有的日期引用和%24
,从而得到正确的结果?如果不是的话,你能更好地解释一下,你希望得到什么样的结果?好的,我已经把它作为一个答案发布了,这样答案就不会在评论中丢失。