Java:使用TimeUnit将秒转换为日,时,分和秒

我正在使用TimeStamp类将秒转换为Day,Hours,Minutes,Seconds。我用下面的代码

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

说明:

  1. 日计算是正确的,不需要解释。
  2. TimeUnit.SECONDS.toHours(seconds)将使您直接从秒转换为小时,而无需考虑已经计算的天数。减去您已经拥有的天数的小时数,即day * 24。您现在剩下了几个小时。
  3. 分钟和秒相同。您需要分别减去已经得到的小时和分钟。

以上是 Java:使用TimeUnit将秒转换为日,时,分和秒 的全部内容, 来源链接: utcz.com/qa/416141.html

回到顶部