Java・Kotlinでミリ秒 ⇒ hhmmssにフォーマット変換…3つの方法

Androidアプリ開発にJava/Kotlinを使ってた時。

ミリ秒をこんな風にフォーマットしたかったです。

▼ 変換前のミリ秒

▼ これをHH:MM:SS.LLにフォーマット

タイマー表示みたいな感じにしたかったです。

その方法は1つだけではないので、
Java/kotlinでミリ秒⇒hhmmssの変換方法を紹介。

最後の方法がもっとも使い勝手がいいです。

方法1.地道に除算してhhmmss形式にフォーマット

ミリ秒をひたすら除算していく方法です。

流れ : 時間 ⇒ 分 ⇒ 秒 ⇒ 残りミリ秒

除算をしていくという地道さがあります。

▼ Kotlin : フォーマット変換コード例

▼ Java : 上記コードをJavaで書き直したコード例

ここではミリ秒精度まで必要なので、ミリ秒・秒・分・時間の余りをそれぞれ求めてます。ただしそれだと割り切れた日数が除外されるので、最後に 日数*24 を時間に足してます。

少し面倒だけど内部処理は分かりやすいはずです。

あと必要に応じてアレンジしやすいと思う

方法2.apache commons DurationFormatUtilsで変換

お次はapache commonsのUtilsクラスを使う方法です。

その名も DurationFormatUtils というクラス

▼ Apache commonsの導入は次記事とか参照

▼ build.gradleにライブラリ追加

▼ たった1行でミリ秒をフォーマットできる

こういうのも便利だなと思います。

僕はあまり使わないけど

方法3.String.format()からミリ秒をフォーマット

この方法が一番ベストだと考えてます。

実はString.format()を使えば簡単です。

▼ Java : こんな数行のコードで変換可能

▼ Kotlin : こっちはエスケープ必要なので注意!

こんな簡単にミリ秒⇒HHMMSS.LLに変換できるとは……

間違いなくこれを使う方がいいですね。

ミリ秒をhhmmssフォーマットする方法まとめ

最後に箇条書きでまとめときます。

以上、ミリ秒をhhmmss形式に変換でした。

他の方法もあれば教えてください。ではまた