「ゼロパディング」タグアーカイブ

Javaで日付をゼロパディング/ゼロサプレスする方法まとめ

Javaで日付を扱う際、「月や日を2桁表示したい(01→1ではなく01のまま)」あるいは「逆にゼロを削除して自然な表示にしたい」という場面はよくあります。
この記事では、**ゼロパディング(ゼロ埋め)ゼロサプレス(ゼロ削除)**の両方を、実際のコード例を交えて分かりやすく解説します。


🧩 ゼロパディングとは?

ゼロパディング(zero padding)とは、数値や日付を指定桁数に揃えるために先頭に0を追加する処理のことです。
例えば「1」を「01」や「001」に整えることで、フォーマットがそろい、ソートや表示が安定します。

例:

元の値ゼロパディング後
101
505
1010

💡 String.format() を使ったゼロパディング

最もシンプルな方法は String.format() です。
桁数を %02d のように指定することで、足りない桁を自動的に0で埋めてくれます。

ポイント:

  • %02d → 2桁に揃えて左側を0埋め

  • %03d → 3桁に揃える(例:007 など)


📅 DateTimeFormatter を使ったゼロパディング

LocalDateLocalDateTimeを使う場合は、DateTimeFormatterの書式指定でゼロパディングが自動適用されます。

MMddといった2桁指定をすることで、常にゼロパディングされた日付が得られます。


🔻 ゼロサプレス(ゼロ削除)とは?

ゼロサプレス(zero suppress)とは、先頭の0を削除して自然な表示にすることを指します。
たとえば「01月」を「1月」に、「09日」を「9日」に整形するようなケースです。


🧮 getMonthValue()getDayOfMonth()を使う方法

LocalDateのメソッドを利用すれば、もともと整数型の値をそのまま出力できるため、ゼロサプレスした形で取得できます。


🧠 DecimalFormatで数値的に制御する

もし整数値を柔軟に扱いたい場合は、DecimalFormatを使うと便利です。

"00" → 常に2桁ゼロ埋め
"#" → 不要なゼロを省略(ゼロサプレス)


🔄 実用例:ゼロ埋め⇔ゼロ削除の切り替え

アプリケーションによっては、状況に応じて表示形式を切り替えたい場合もあります。


✅ まとめ

処理主な方法
ゼロパディングString.format("%02d") / DateTimeFormatter("MM")01, 05
ゼロサプレスgetMonthValue() / DecimalFormat("#")1, 5

ゼロパディングはフォーマットの統一やログ整形に便利で、ゼロサプレスは人が読む表示に適しています。
目的に応じてどちらを使うか選びましょう。