Próbowałem przekonwertować wartość sekund (w zmiennej BigDecimal) na ciąg w editText, taki jak „1 godzina 22 minuty 33 sekundy” lub coś w tym rodzaju.
Próbowałem tego:
String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");
(Mam roundThreeCalc, która jest wartością w sekundach, więc próbuję ją tutaj przekonwertować.)
hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime = hours.toString() + minutes.toString() + seconds.toString();
Następnie ustawiam editText na ciąg sequnceCaptureTime. Ale to nie zadziałało. Za każdym razem wymuszało to zamknięcie aplikacji. Jestem tutaj całkowicie poza swoją głębią, każda pomoc jest bardzo doceniana. Miłego kodowania!
Odpowiedzi:
Powinieneś mieć więcej szczęścia
Spowoduje to spadek wartości dziesiętnych po każdym dzieleniu.
Edycja: jeśli to nie zadziałało, spróbuj tego. (Właśnie to napisałem i przetestowałem)
źródło
DateUtils.formatElapsedTime
...Czy konieczne jest użycie BigDecimal? Jeśli nie musisz, użyłbym int lub long przez kilka sekund, co trochę uprościłoby sprawę:
Możesz jednak chcieć dopełnić każdy, aby upewnić się, że są to wartości dwucyfrowe (lub cokolwiek innego) w ciągu.
źródło
String.format("%02d:%02d:%02d", hours, minutes, seconds);
String.format(Locale.ENGLISH, "%02d:%02d:%02d", hours, minutes, seconds)
DateUtils.formatElapsedTime
...DateUtils.formatElapsedTime(long)
, formatuje upływający czas w postaci „MM:SS
” lub „H:MM:SS
”. Zwraca ciąg, którego szukasz. Dokumentację znajdziesz tutajźródło
Oto działający kod:
źródło
DateUtils.formatElapsedTime
...Coś naprawdę pomocnego w Javie 8
źródło
Wolę java wbudowaną w bibliotekę TimeUnit
źródło
źródło
Oto moje proste rozwiązanie:
Test Results
:źródło
Dlatego lubię upraszczać:
Wynik będzie następujący: 01 godzina 23 minuty 20 sekund
źródło
Jeśli chcesz jednostki
h
,min
isec
przez pewien czas możesz to wykorzystać:To dużo operatorów warunkowych. Metoda zwróci te ciągi:
źródło
Ten kod działa poprawnie:
źródło
Miły i łatwy sposób na zrobienie tego za pomocą GregorianCalendar
Zaimportuj je do projektu:
I wtedy:
źródło
Używam tego:
źródło
Oto moja funkcja, aby rozwiązać problem:
źródło
Wiem, że to jest dość stare, ale w Javie 8:
źródło
przez kilka minut i sekund użyj tego
źródło
Używam tego w Pythonie do konwersji liczby zmiennoprzecinkowej reprezentującej sekundy na godziny, minuty, sekundy i mikrosekundy. Jest dość elegancki i jest przydatny do konwertowania na typ datetime za pośrednictwem strptime do konwersji. W razie potrzeby można go również łatwo przedłużyć do dłuższych odstępów czasu (tygodnie, miesiące itp.).
źródło
Wypróbowałem najlepszy sposób i mniej kodu, ale może być trochę trudno zrozumieć, jak napisałem swój kod, ale jeśli jesteś dobry z matematyki, jest to takie łatwe
godziny zajęć {
}
więcej ponad to jest dokładne!
źródło
Dzięki Java 8 możesz łatwo uzyskać czas w formacie String z długich sekund, takich jak,
Tutaj podana wartość jest maksymalna do konwersji (do 24 godzin) i wynik będzie
Zalety: 1) Nie ma potrzeby ręcznej konwersji i dodawania 0 dla pojedynczej cyfry
Wady: pracuj tylko do 24 godzin
źródło
Dzięki Java 8 możesz łatwo uzyskać czas w formacie LocalTime z długich sekund, takich jak
Tutaj podana wartość jest maksymalna do konwersji (do 24 godzin) i wynik będzie
Zalety: 1) Nie ma potrzeby ręcznej konwersji i dodawania 0 dla pojedynczej cyfry
Wady: pracuj tylko do 24 godzin
źródło
Czas trwania od java.time
Wynik z tego fragmentu kodu to:
Gdyby w
BigDecimal
kodzie znajdował się niezerowy ułamek sekundy, kod nie działałby tak, jak jest, ale możesz go zmodyfikować. Kod działa w Javie 9 i nowszych. W Javie 8 konwersja zDuration
godzin, minut i sekund jest nieco bardziej rozwlekła, zobacz link na dole, aby dowiedzieć się, jak to zrobić. Wam pozostawiam wybór poprawnej formy liczby pojedynczej lub mnogiej słów ( godzina lub godziny itp.).Spinki do mankietów
Duration
dni, godzin, minut i sekund w Javie 8.źródło