美好的一天!TimePicker反向24小时数据
我有一个包含TimePicker的Dialog类。 TimePicker设置为24小时模式。 当我选择时间< 12 - 选择器返回时间+12小时。
例如 -
我给自己定07:25 - 19:25返回。和反之亦然
如果我设置19:43 - 返回07:42。和
如果我设置12:01,例如 - TimePicker返回愚蠢的24:01。
这个工具有什么问题?
这里我Dialog类的全码:
public class TimePickerDialog extends DialogFragment {
public static final String EXTRA_TIME = "time";
@Bind(R.id.pickerTime_timePicker) TimePicker timePicker;
//// DialogFragment methods
@Override @NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater().inflate(R.layout.picker_time, null);
ButterKnife.bind(this, view);
timePicker.setIs24HourView(true);
return new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle(getString(R.string.time_picker_dialog_label))
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sendResult(Activity.RESULT_OK);
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
}
//// Private methods
private void sendResult(int resultCode) {
if (getTargetFragment() == null) {
return;
}
Intent intent = new Intent();
intent.putExtra(EXTRA_TIME, getTimeFromTimePicker(timePicker));
getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);
}
private Date getTimeFromTimePicker(TimePicker timePicker) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, timePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
return calendar.getTime();
}
}
不,那不行。我应该注意到我目前在设备上的时间是13:33。但是当我启动TimePicker时,它会在滚动条上设置01:33。 24小时模式开启。 –
这很奇怪。我将你的代码复制并粘贴到我的项目中,并且工作正常。除非我调用caledar.get(Calendar.HOUR_OF_DAY),否则它将返回1的13。可以通过设置HOUR_OF_DAY而不是HOUR来修复。也许你在某个地方设置了时间戳吗? –