android-widget - TimePicker 不允许 "24:00"?

标签 android-widget timepicker

我需要创建一个“从……到”时间选择并为此创建了 2 个 TimePicker 组件。因为它背后的数据库已经存在多年并且使用 24 小时格式,所以在我的代码中,我设置

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

我现在的问题是,似乎无法将“24:00”选为“to:”值,因为在“23”(:00) 之后,组件将“back”切换为“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 实现这一目标?

最佳答案

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

搜索“24”并将所有出现的内容替换为“25”,然后在 bootstrap-timepicker.js 中搜索“23”并将它们替换为“24”。

如果你想允许像 24:01, .., 24:59 这样的时间,你就完成了。如果您只想接受 24:00 而不是 24 分钟,请转到 getTime 函数所在的第 133 行。

将以下代码放在现有返回的前面(但不要删除它):

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

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

关于android-widget - TimePicker 不允许 "24:00"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389939/

相关文章:

android - 如何以编程方式在 NestedScrollView 中显示滚动条。

java - 使用时间选择器使警报管理器每天重复

c# - 获取不带小时的当前日期时间 C#

jquery 日期时间选择器

android - 如何为 Android 实现 cordova-plugin-datepicker?

android - 透明小部件背景?

android - 从 url 流式传输图像,android

android - 尝试检索 LinearLayout 时出现奇怪的 NullpointerException

android - 类似 Twitter 的 Android 自动完成 TextView

javascript - 如何编辑material-ui-time-picker的时间选择器?