1

データベースに格納されている時間を文字列型として変換し、適切な形式で出力しようとしています。.replaceAllを使用してみました。その結果、5:3は05:03に置き換えられましたが、17:3も0107:03になりました。誰かが正しいアプローチについて何か提案がありますか?

  String moduleStartHour = (c.getString(c.getColumnIndex(database.KEY_MODULESTARTHOUR)));
    String moduleStartMinute = (c.getString(c.getColumnIndex(database.KEY_MODULESTARTMINUTE)));

    String newModuleStartHour= moduleStartHour.replaceAll("0", "00").replaceAll("1", "01").replaceAll("2", "03")
            .replaceAll('4', "04").replaceAll("5", "05").replaceAll("6", "06").replaceAll("7", "07").replaceAll("8", "08")
            .replaceAll("9", "09");
    String newModuleStartMinute= moduleStartMinute.replaceAll("0", "00").replaceAll("1", "01").replaceAll("2", "03")
            .replaceAll("4", "04").replaceAll("5", "05").replaceAll("6", "06").replaceAll("7", "07").replaceAll("8", "08")
            .replaceAll("9", "09");

    StringBuilder sb =new StringBuilder();
    sb.append(newModuleStartHour).append(":").append(newModuleStartMinute);
    String moduleStartTime = sb.toString();
4

1 に答える 1

2
if (moduleStartHour.length() == 1)
  moduleStartHour = "0" + moduleStartHour;

if (moduleStartMinute.length() == 1)
   moduleStartMinute  = "0" + moduleStartMinute;

StringBuilder sb =new StringBuilder();
sb.append(moduleStartHour).append(":").append(moduleStartMinute);
String moduleStartTime = sb.toString();

または、プロセス全体で StringBuilder を使用する場合

    StringBuilder sb = new StringBuilder();

    if (moduleStartHour.length() == 1)
        sb.append("0");

    sb.append(moduleStartHour).append(":");

    if (moduleStartMinute.length() == 1)
        sb.append("0");

    sb.append(moduleStartMinute);

    String moduleStartTime = sb.toString();
于 2012-11-05T21:58:03.943 に答える