53

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

你能帮助我吗?谢谢。

4

11 回答 11

80

TimePicker是用于选择一天中时间的视图,可选择 24 小时或 AM/PM 模式。您可以将setIs24HourView(true)方法与TimePicker 一起使用。

于 2012-09-17T04:24:24.023 回答
42

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

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

更多详情见:

于 2013-04-28T09:13:20.850 回答
23

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

import java.util.Calendar;

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

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

于 2013-08-08T12:16:40.707 回答
6

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

ID 是任意的:

View v=getActivity().getLayoutInflater().inflate(R.layout.dialog_time, null);
TimePicker timePicker=(TimePicker)v.findViewById(R.id.dialog_time_timePicker);
timePicker.setIs24HourView(true);
于 2013-06-22T19:08:30.813 回答
3

xml

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

爪哇

TimePicker timePicker = (TimePicker) findViewById(R.id.timePicker);    
timePicker.setIs24HourView(true); 
于 2015-11-13T15:59:43.067 回答
1

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

于 2012-09-17T04:28:59.330 回答
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:");
于 2016-07-25T23:42:35.290 回答
0

您只需要调用并将true发送到setIs24HourView函数。

TimePicker tpHourMin = (TimePicker) findViewById(R.id.timePicker);
tpHourMin.setIs24HourView(true);
于 2014-07-13T00:59:36.947 回答
0

正如一些人已经提到的,只需将参数设置为 true 或 false。

timePicker.setIs24HourView(true);

您可以从这里 http://www.ahotbrew.com/android-timepicker-example/找到包含源代码的完整示例下载

于 2015-06-28T09:46:11.170 回答
0

或者您让用户自己决定他想使用哪种格式。

在您的 MainActivity 中:

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()));

}}
于 2019-07-13T23:12:13.543 回答
0

对于时间选择器对话框

Timepicker 对话框由 android 提供以选择时间。

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

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

传递 true 24 小时或传递 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()
    }
于 2020-01-30T11:08:26.903 回答