Java:使用TimeUnit将秒数转换为日,小时,分钟和秒 [英] Java: convert seconds into day, hour, minute and seconds using TimeUnit
本文介绍了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)
时,将其结果作为第0天小时1分钟60秒3540
而不是第0天小时1分0秒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
.
我的逻辑有什么问题?请帮助我。
What is the wrong with my logic? Please help me.
推荐答案
应该像
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(秒)将直接从秒数转换到几个小时,不考虑你已经计算的几天。减少你已经得到的几天的时间,即* 24天。你现在剩下几个小时了。
- 分钟和秒钟相同。你需要分别减去已经得到的小时和分钟。
这篇关于Java:使用TimeUnit将秒数转换为日,小时,分钟和秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文