限定しりとり

日付を

public static Result create() {
//初期値
as c = new as();
c.year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));//年
c.month = String.valueOf(Calendar.getInstance().get(Calendar.MONTH)+1);//月
c.date = String.valueOf(Calendar.getInstance().get(Calendar.DATE));//日
Form<as> asForm = form(as.class).fill(c);
return ok(
ascreateForm.render(asForm)
);
}
今回はvalueofで表示をしたいのですがこの月と日の処理に0埋めをする処理を加えたいのですがどうしたらよいですか?

A 回答 (2件)

String#format をお勧めします



String 四桁0埋め文字列 = String.format("%04d", 整数);
String ニ桁0埋め文字列 = String.format("%02d", 整数);
String 四桁以上の年 = String.format("%tY", 日付オブジェクト);
String ニ桁の月 = String.format("%tm", 日付オブジェクト);
String ニ桁の日 = String.format("%td", 日付オブジェクト);
String YYYY_MM_DD = String.format("%tF", 日付オブジェクト);

参考
https://docs.oracle.com/javase/jp/8/docs/api/jav …
https://docs.oracle.com/javase/jp/8/docs/api/jav …

もし、どうしても String#valueOf を使わなければならない特殊な理由が有るならば、

static String padZero(int num, int length) {
_ StringBuilder a = new StringBuilder(String.valueOf(num));
_ while (a.length() < length) a.insert(0, '0');
_ return a.toString();
}
String 四桁0埋め文字列 = padZero(整数, 4);
    • good
    • 0

https://oshiete.goo.ne.jp/qa/10095225.html
こちらでformatでやれば?
というのに対して、
>今回はvalueofで表示をしたいのですが
ということなんでしょうかね?

Javaは知りませんが、valueof自体にはそういう機能ないんじゃないですかね?
"00" + String.valueOf(Calendar.getInstance().get(Calendar.MONTH)+1)
で"0011"(11月の場合)という文字列を作成して、右から2桁切り出す。とか。
# formatの方が簡単だと思いますけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!