web-dev-qa-db-ja.com

Java(Android)でgetMonthを使用してリーディングゼロを追加する方法

私はint変数を使用しています:

month = dp.getMonth() + 1;

現在「2」の出力を取得しており、次のようにすると次のようになります。

if (month<10){
                month = '0'+month;
            };

私は得る:50。

11
Robby

問題は、'0'charが整数に強制変換されていることです。 '0'の値はASCII値48であるため、48 + 2 = 50を取得します。

実行しようとしていることは機能しないことに注意してください。monthは数字であるため、先頭の0monthに追加することはできません。先頭のゼロは、数値の文字列表現でのみ意味があります。

この回答 で説明されているように、ゼロが埋め込まれた数値を生成する方法は次のとおりです。

String.format("%02d", month);   
42