12

24 時間形式を 12 時間形式に変換する際に問題があります。これは私のコードです。

    private TimePickerDialog.OnTimeSetListener mTimeSetListener =
        new TimePickerDialog.OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                // TODO Auto-generated method stub
                ViewGroup vg=(ViewGroup) view.getChildAt(0);
                hour = hourOfDay;
                minutes = minute;
                String am_pm = (hourOfDay < 12) ? "AM" : "PM";
                SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US);
                String tme = hour +":"+ minutes+am_pm;
                et1.setText(tme);
            }
        };

24 時間形式を 12 時間形式に変更する方法がわからないため、アラート ダイアログからタイムピッカー ダイアログに移行します

et1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                new TimePickerDialog(MainActivity.this, mTimeSetListener, hour, minutes, false).show();
            }
        });

    }  

これは、ブール値の印象を既に false に変えている証拠です。

4

7 に答える 7

8

遅すぎることはわかっていますが、たった2行で完璧になります。

private TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            boolean isPM = (hourOfDay >= 12);
            tvTime.setText(String.format("%02d:%02d %s", (hourOfDay == 12 || hourOfDay == 0) ? 12 : hourOfDay % 12, minute, isPM ? "PM" : "AM"));
        }
    };
于 2015-11-19T09:07:41.487 に答える
3

コンストラクタパラメータがあります

public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

ドキュメントを参照してください。書式設定にはandroid.text.format.DateFormatを使用します

于 2013-12-17T08:38:00.883 に答える
1

Plsはこのコードで試してください

  int Hour=0;
int Minute=0;
int new_hour=0;
 String new_minute=null;
TimePickerDialog.OnTimeSetListener time = new TimePickerDialog.OnTimeSetListener() {



public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
         Hour = hourOfDay;
         Minute = minute;

        String time_form = hourOfDay + ":" + minute + ":00";
        int r = minute / 10;
        if (r == 0) {
            new_minute = "0" + minute;
        } else {
            new_minute = minute + "";
        }
        if (Hour > 12) {
            new_hour = (hourOfDay - 12);
            edit_text.setText(new StringBuilder().append(new_hour)
                    .append(":").append(new_minute)
                    + " PM");
        } else if (Hour == 12) {

            new_hour = hourOfDay;
            edit_text.setText(new StringBuilder().append(new_hour)
                    .append(":").append(new_minute)
                    + " PM");
        }

        else {
            new_hour = hourOfDay;
            edit_text.setText(new StringBuilder().append(new_hour)
                    .append(":").append(new_minute)
                    + " AM");
        }

    }

};
于 2013-12-17T09:26:56.073 に答える
0

使わない理由

timePicker.setIs24HourView(false);

于 2013-12-17T08:32:37.170 に答える