首页 文章

timeFormat类型的setFormatter Display.PICKER_TYPE_TIME无法使用代码名称

提问于
浏览
1

我在我的代码中使用时间选择器和日期选择器 . 我正在使用setFormatter方法设置日期选择器的格式它工作正常但是在设置时间选择器的格式时,它没有采用给定的格式,并且在运行我的代码时显示非法参数异常 . 在点击后打开时间时显示24小时格式设置它显示12小时格式 . 但我需要在打开时间选择器对话框时它只显示12小时格式 . 我的代码中出现了问题 .

这是我的代码,

SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
datePicker = new Picker();
datePicker.setType(Display.PICKER_TYPE_DATE);
datePicker.setFormatter(dateFormatter);
SimpleDateFormat timeFormatter = new SimpleDateFormat("h:mm a");
timePicker = new Picker();
timePicker.setType(Display.PICKER_TYPE_TIME);
timePicker.setShowMeridiem(Boolean.TRUE);
timePicker.setFormatter(timeFormatter);
Container c = new Container(new BoxLayout(BoxLayout.X_AXIS));
c.add(datePicker);
c.add(timePicker);
dialogtimeForm.add(c);

请找到下面的图片

提前致谢 .

1 回答

  • 0

    时间选择器不适用于 Date 对象,它使用表示午夜时间的整数,因为 Date 在表示抽象时区不敏感时间概念方面非常糟糕 .

    因此,对于非日期或日期和时间(与日期不同)的所有类型,将忽略格式化程序 .

    您可以通过覆盖 Picker 类中的 updateValue 并使用格式化的值调用 setText(String) 来执行您想要的任何自定义格式设置 .

相关问题