2012-09-17 11 views
5

Milisaniye cinsinden saniyeler ve dakikaları biçimlendirmem gerekiyor. CountdownTimer kullanıyorum. hiç kimsenin yokluğu var mı? Joda zamanına baktım. Ama tek ihtiyacım olan bir format, yani 1:05 ve 1: 5 değil. teşekkürlerSaniye ve dakikaların biçimlendirilmesi

private void walk() { 
    new CountDownTimer(15000, 1000) { 
     @Override 
     public void onFinish() { 
      lapCounter++; 
      lapNumber.setText("Lap Number: " + lapCounter); 
      run(); 
     } 

     @Override 
     public void onTick(long millisUntilFinished) { 
      text.setText("Time left:" + millisUntilFinished/1000); 
     } 
    }.start(); 
} 
+0

kullanmayı tercih ediyorum? Alternatif olarak, 10'dan küçükse, tam sayınızın soluna her zaman bir '0' ekleyebilirsiniz. – BlackVegetable

+0

Tüm gereksinimlerinizi karşılayıp karşılamayacağından emin değilim, ama bir göz atmaya değer olabilir [PrettyTime] (http://ocpsoft.org/prettytime/) – MadProgrammer

cevap

26

kullanarak yapabileceğini kullanmak 60 dakikadan fazla olduğu olmaz bildiği gibi bunu yapmanın Gerçek tembel yolu Standart Tarih formatlama sınıfları, ancak bu biraz ağır olabilir. Sadece String.format yöntemini kullanırdım. Örneğin,

int minutes = time/(60 * 1000); 
int seconds = (time/1000) % 60; 
String str = String.format("%d:%02d", minutes, seconds); 
+0

Harika! Tam olarak aradığım şey buydu! "% d:% 02d" yi anladığımdan emin değilim. Bunu kendi başıma denedim ve doğru anlamadım. Teşekkürler! –

+1

% 'i bir değiştirme sinyalini verir, 0 rakamı sıfırlama anlamına gelir, 2 genişliği 2 yapar ve d işareti ondalık sayı olarak gösterilir. İşte belgeler: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html –

6

sürece sadece bir randevu ve SimpleDateFormat

public void onTick(long millisUntilFinished) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("mm:ss"); 
    dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 
    Date date = new Date(millisUntilFinished); 
    text.setText("Time left:" + dateFormat.format(date)); 
} 
0

Apache Commons StopWatch sınıfını kullandım. ToString yönteminin varsayılan çıktısı, ISO8601 benzeri, saatler: dakika: saniye.

Example of Apache StopWatch

2

i zaten SimpleNumberFormat baktınız mı

org.apache.commons.lang.time.DurationFormatUtils.formatDuration(millisUntilFinished, "mm:ss") 
İlgili konular