我在布局中创建了一个TimePicker,我希望它以24h格式显示时间。
你能帮帮我吗?感谢。答案 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()
}