मैं उलझन में हूं। इस थ्रेड पर ठोकर खाने के बाद , मैंने यह पता लगाने की कोशिश की कि एक उलटी गिनती टाइमर को कैसे प्रारूपित किया जाए hh:mm:ss
।
यहाँ मेरा प्रयास है -
//hh:mm:ss
String.format("%02d:%02d:%02d",
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
हूं, मुझे मिलता है 01:59:00
, जो गलत है क्योंकि यह होना चाहिए 01:00:00
। जाहिर है कि मेरे तर्क में कुछ गड़बड़ है, लेकिन फिलहाल, मैं यह नहीं देख सकता कि यह क्या है!
क्या कोई मदद कर सकता है?
संपादित करें -
ठीक कर दिया। यहां मिलिसेकंड को hh:mm:ss
प्रारूपित करने का सही तरीका है -
//hh:mm:ss
String.format("%02d:%02d:%02d",
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))));
समस्या यह थी TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
। इसके TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis))
बजाय यह होना चाहिए था ।
00:59:59
, यह होना चाहिए01:00:00
।