本文介绍了Java:使用 TimeUnit 将秒转换为日、小时、分钟和秒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 TimeStamp 类将秒转换为天、小时、分钟、秒.我使用了以下代码
I am using TimeStamp class to convert seconds into Day,Hours,Minutes,Seconds. I used following code
public static void calculateTime(long seconds) {
int day = (int)TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.toDays(seconds));
long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toMinutes(TimeUnit.SECONDS.toHours(seconds));
long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.SECONDS.toSeconds(TimeUnit.SECONDS.toMinutes(seconds));
System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second);
}
但我没有得到正确的结果.例如,当我将此方法称为 calculateTime(3600)
时,它给我的结果为 Day 0 Hour 1 Minute 60 Seconds 3540
而不是 Day 0 Hour 1 Minute0 秒 0
.
But I am not getting right result.For example when I called this method as calculateTime(3600)
it gives me the result as Day 0 Hour 1 Minute 60 Seconds 3540
instead of Day 0 Hour 1 Minute 0 Seconds 0
.
我的逻辑有什么问题?请帮帮我.
推荐答案
应该是这样的
int day = (int)TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - (day *24);
long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds)* 60);
long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) *60);
编辑解释:
- 日计算是正确的,不需要解释.
- TimeUnit.SECONDS.toHours(second) 将让您直接从秒转换为小时,而不考虑您已经计算的天数.减去您已经获得的天数,即天 * 24.您现在还有剩余时间.
- 分秒相同.您需要分别减去已经得到的小时和分钟.
这篇关于Java:使用 TimeUnit 将秒转换为日、小时、分钟和秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!