2012-12-29 169 views
-1

嘿,我有什么想法,我能维持多久时间格式 分钟:秒:毫秒,例如01:57:934 我可以使用String.format(0#.0#.###)但长什么改变这个时间; ?Java的时间(分钟:秒:毫秒)

+1

当你处理日期和时间,我会建议你使用java Date类,甚至更好,则甚至优于时库yodatime:http://joda-time.sourceforge.net/ – Philipp

回答

2

我会使用SimpleDateFormat假设你有不到一个小时。

String text = new SimpleDateFormat("mm:ss:SSS").format(new Date(time)); 

或者你可以使用普通数学。

String text = String.format("%02d:%02d:%03d", time/60000, time/1000%60, time/1000); 
0

long timeDiff =(d1.getTime() - d2.getTime());

String diff=String.format("%d year(s) %d day(s) %d hour(s) %d min(s) %d sec(s)",(TimeUnit.MILLISECONDS.toDays(timeDiff)/365),TimeUnit.MILLISECONDS.toDays(timeDiff)%365, 
      TimeUnit.MILLISECONDS.toHours(timeDiff) 
      - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS 
      .toDays(timeDiff)), 
      TimeUnit.MILLISECONDS.toMinutes(timeDiff) 
      - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS 
      .toHours(timeDiff)), 
      TimeUnit.MILLISECONDS.toSeconds(timeDiff) 
      - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS 
      .toMinutes(timeDiff))); 
    System.out.println(diff); 

在此处指定D1 &正确的日期d2.Then你会得到差的正确答案

2

由于1.5存在java.util.concurrent.TimeUnit中的类,像这样使用:

long millis = System.currentTimeMillis(); 
String.format("%d min, %d sec", 
TimeUnit.MILLISECONDS.toMinutes(millis), 
TimeUnit.MILLISECONDS.toSeconds(millis) - 
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)) 
); 

对于Java版本低于1.5或对于不充分(API版本9之前如Android)支持TIMEUNIT类的系统中,下面的等式可用于:

int seconds = (int) (milliseconds/1000) % 60 ; 
int minutes = (int) ((milliseconds/(1000*60)) % 60); 
int hours = (int) ((milliseconds/(1000*60*60)) % 24); 
+0

+ 1,虽然我不相信它与Android API有关,因为这是一个java类 –

+0

它根本与Android API无关 –

+0

TimeUnit.MINUTES和TimeUnit.MILLISECONDS.toMinutes()只存在于Java 1.6。 –

相关问题