我想制作一个显示系统时间的模拟时钟。我的代码工作正常,但我唯一的问题是我希望以12小时格式显示时间,但它以24小时格式显示。
void setCurrentTime() {
Calendar calendar = new GregorianCalendar();
// Set current hour, minute, and second
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
this.second = calendar.get(Calendar.SECOND);
paintClock();
}
答案 0 :(得分:1)
使用Calendar.HOUR
代替Calendar.HOUR_OF_DAY
来自Hour的Javadocs:
获取和设置的字段编号,表示上午或下午的小时。 HOUR用于12小时制(0 - 11)
来自HOUR_OF_DAY的Javadocs:
获取和设置的字段编号,表示当天的小时。 HOUR_OF_DAY用于24小时制。
答案 1 :(得分:0)
假设您使用JavaFX,那么您也在使用Java 8:
让尊敬的Calendar
课退休。使用java.time
:
LocalTime currTime = LocalTime.now();
this.hour = currTime.get(ChronoField.HOUR_OF_AMPM);
this.minute = currTime.getMinute();
this.second = currTime.getSecond();