如何设置格式为24h的TimePicker

时间:2012-09-17 04:18:42

标签: android android-layout

我在布局中创建了一个TimePicker,我希望它以24h格式显示时间。

你能帮帮我吗?感谢。

11 个答案:

答案 0 :(得分:71)

TimePicker是用于在24小时或上午/下午模式中选择时间的视图。 您可以将setIs24HourView(true)方法与TimePicker.

一起使用

答案 1 :(得分:38)

TimePicker默认设置为24小时模式并不总是一个好主意,因为许多国家都有不同的惯例。对于这种情况,请使用DateFormat.is24HourFormat(getActivity())

您的最终代码迁移看起来像picker.setIs24HourView(DateFormat.is24HourFormat(this));

进一步详情见:

答案 2 :(得分:20)

如果您希望使用24小时格式的当前时间正确初始化TimePicker,请使用以下命令:

import java.util.Calendar;

timePicker.setIs24HourView(true);
timePicker.setCurrentHour(Calendar.getInstance().get(Calendar.HOUR_OF_DAY));

否则,由于Android错误,选择器将以不正确的小时开始(2而不是14等)。

答案 3 :(得分:3)

您只需在充气后从视图中检索TimePicker实例,然后就可以修改小部件。

Ids是任意的:

View v=getActivity().getLayoutInflater().inflate(R.layout.dialog_time, null);
TimePicker timePicker=(TimePicker)v.findViewById(R.id.dialog_time_timePicker);
timePicker.setIs24HourView(true);

答案 4 :(得分:1)

默认情况下,它以AM / PM格式显示时间。如果要以24小时格式更改时间,则可以使用setIs24HourView()方法。 请看这个链接:http://www.androidaspect.com/2012/06/timepicker-view-tutorial.html

答案 5 :(得分:1)

XML

<TimePicker
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:id="@+id/timePicker" />

的java

TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);    
timePicker.setIs24HourView(true); 

答案 6 :(得分:1)

我只需要一个应用程序来设置执行任务的持续时间。我发现我只需要扩展TimePickerDialog类并在最后一个构造函数参数boolean is24HourView中传递True。

public class DurationPickerDialog extends TimePickerDialog {

public DurationPickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute){
    super(context, callBack, hourOfDay, minute, true);
}

然后你只需要将其创建为

TimePickerDialog durationPicker =  new DurationPickerDialog(getActivity(), this, hour, minute);
durationPicker.setTitle("Duration:");

答案 7 :(得分:0)

您只需要致电并将 true 发送到 setIs24HourView 功能。

TimePicker tpHourMin = (TimePicker) findViewById(R.id.timePicker);
tpHourMin.setIs24HourView(true);

答案 8 :(得分:0)

有些人已经提到过将参数设置为true或false。

timePicker.setIs24HourView(真);

您可以在此处找到包含源代码的完整示例 http://www.ahotbrew.com/android-timepicker-example/

答案 9 :(得分:0)

或者您让用户自己决定他要使用的格式。

在您的MainActivty中:

DialogFragment timePicker = new TimePickerFragment();
timePicker.show(getSupportFragmentManager(), "time picker");


   @Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

            TextView outputText= (TextView)findViewById(R.id.outputText);
            outputText.setText(hourOfDay + " : "+ minute);
}

并在新的Java类(TimePickerFragment)中:

public class TimePickerFragment extends DialogFragment {

@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {

    Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);



    return new TimePickerDialog(getActivity(),(TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, android.text.format.DateFormat.is24HourFormat(getActivity()));

}}

答案 10 :(得分:0)

用于“时间选择器”对话框

“时间选择器”对话框由android提供,用于选择时间。

Java通过在TimePickerDialog构造函数中传递is24HourView == true提供了默认功能。

public TimePickerDialog(Context context, OnTimeSetListener listener, int hourOfDay, int minute,boolean is24HourView) {
        this(context, 0, listener, hourOfDay, minute, is24HourView);
    }

传递24小时的true或传递false以设置AM-PM格式的时间选择器对话框。

例如:(科特琳)

 private fun showTimePicker() {
        val cal = Calendar.getInstance()
        val dialog = TimePickerDialog(this, TimePickerDialog.OnTimeSetListener { view, hourOfDay, minute ->
            Log.e("Time :","$hourOfDay:$minute")
        }, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true) //here pass true for 24hrs view else false for AM-PM(12hrs view)
        dialog.show()
    }