将int转换为时间Java

时间:2014-02-28 22:50:24

标签: java android

我有一个int计数器,从600开始,在Runnable,并且增加1。

600表示早上6点,2400表示午夜。

将此int与以相同格式从API收到的int进行比较。

我需要比较它们两者;然而,问题是我的int目前在一小时内有100分钟,所以随着时间的推移它会越来越多时间。

有没有办法将int计数器转换为时间格式? (Java格式为18000000 = 6am不起作用)

干杯菲尔

3 个答案:

答案 0 :(得分:1)

如果你真的需要改变你的0 - > 2400到“时间格式”,您可以使用:

hour = uTime/100
uMinutes = uTime - hour*100
normalMinutes = (60*uMinutes)/100

然后转到“长”和毫秒用于其他地方。

答案 1 :(得分:1)

戴夫牛顿说它只是数学是正确的。整数时间由两个组成部分组成,小时和分钟(易于阅读但难以计算)。

 int time = 600;
 int hours = time / 100;
 int minutes = (time - hours * 100) % 60;

所以你不能只是增加你的时间(time++),因为你写的时候每小时最终得到一分钟。请改用此方法:

 int incrementTime(int time) {
      time++;
      int hours = time / 100;
      int minutes = (time - hours * 100) % 60;
      if (minutes == 0) hours++;
      return hours * 100 + minutes;
 }

你可以尝试一下:

 time = 600;
 for (int i=0; i < 120; i++) {
      time = incrementTime(time);
      System.out.println(time);
 }

答案 2 :(得分:0)

Java已经有办法将日期时间转换为数字,反之亦然。

//Get integer representation of time
Calendar rightNow = Calendar.getInstance();
long integerRepresentation = rightNow.getTimeInMillis();

//Set time to integer reprsentation
Calendar calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(integerRepresentation);
相关问题