Milisaniye dönüştürme "hh:mm:ss " formatında?
Kafam karıştı. this iplik tökezletici sonra format hh:mm:ss
Bu bir geri sayım sayacı biçimini anlamaya çalıştım.
Burada benim girişimi
//hh:mm:ss
String.format("d:d:d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
3600000ms
gibi bir değer çalıştığımda, 01:00:00
olmalıdır beri yanlış olan 01:59:00
, anlıyorum. Belli ki bir şey benim mantığım yanlış bir şey yok, ama şu an ne olduğunu göremiyorum!
Herkes yardımcı olabilir?
Düzenle -
Tamir ettim. İşte hh:mm:ss
format - biçim milisaniye doğru
//hh:mm:ss
String.format("d:d:d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
Sorun TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Bu oldu. Bunun yerine TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
Bu olmalıydı.
CEVAP
Sendingerçektenkapat:
String.format("d:d:d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), // The change is in this line
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
Millisseconds için saat kullanarak dönüştürme olduğunudakikayerinesaat.
BTW, TimeUnit
kullanımınız API :) severim
İşte bazı test kod:
public static void main(String[] args) throws ParseException {
long millis = 3600000;
String hms = String.format("d:d:d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
}
Çıkış:
01:00:00
Kodum yukarıda büyük ölçüde çıkarma yerine: modüllü bir bölüm kullanarak basitleştirilmiş olabilir fark ettim
String hms = String.format("d:d:d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) % TimeUnit.HOURS.toMinutes(1),
TimeUnit.MILLISECONDS.toSeconds(millis) % TimeUnit.MINUTES.toSeconds(1));
Hala TimeUnit
büyü kullanarak tüm değerler için API ve verir tam olarak aynı çıktı.
"Dalvik format Dönüştürme harici ...
Nasıl Java "X dakika x saniye&quo...
Nasıl "bağımsız" dönüştürme; ...
java saat biçimi için milisaniye dönüş...
Dönüştürme bir tarih (jQuery/JS)milisa...