TimePicker不允许“24:00”?

时间:2012-07-09 06:21:44

标签: android-widget timepicker

我需要创建一个“from ... to”时间选择并为此创建2个TimePicker组件。因为它背后的数据库已存在多年并使用24小时格式,在我的代码中,我正在设置

tpOpenFrom.setIs24HourView(true);
tpOpenTo.setIs24HourView(true);

我现在的问题是,看起来,“24:00”不能被选为“to:”值,因为在“23”(:00)之后,组件将“返回”切换为“00” (:00),使得无法确定用户是否忘记进行实际选择,例如“09:00”是否已被输入“从”时间而“00:00”被输入为“到”时间。或者,如果选择了“00:00”到“00:00”:用户是否忘记输入任何内容或是否打算定义“全天候开放”?

在24小时模式下,TimePicker应该允许输入24:00。 ISO 8601中的24小时时钟系统将午夜定义为特殊情况,可称为“00:00”和“24:00”,因此TimePicker应允许将小时数设置为24并自动阻止分钟到00。

有没有人知道如何利用TimePicker实现这一目标?

1 个答案:

答案 0 :(得分:2)

我在使用bootstrap timepicker时遇到了同样的问题,但实现起来并不困难。我正在使用Joris de Wit(http://jdewit.github.io/bootstrap-timepicker/)的时间选择器。

搜索" 24"并用" 25"替换所有出现的,然后搜索" 23"在bootstrap-timepicker.js中用" 24"替换它们。

如果您想允许24:01,...,24:59这样的时间,那么您已经完成了。如果您只想接受24:00而不是24分钟,请转到第133行,其中getTime函数为。

将以下代码放在现有退货之前(但不要将其删除):

if (this.hour == 24 && this.minute != 0) {
  this.setTime('00:' + this.minute);
  return '00:' + this.minute;
}

这会将任何24:XX时间转换为00:XX。