我想制作一个显示系统时间的模拟时钟。我的代码工作完美,但我唯一的问题是,我想在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();
}
用Calendar.HOUR
代替Calendar.HOUR_OF_DAY
From Javadocs for Hour:
get和set字段号,表示上午或下午的时间。HOUR用于12小时时钟(0 - 11)
From Javadocs for HOUR_OF_DAY:
get和set字段号,表示一天中的小时。HOUR_OF_DAY用于24小时制。
假设,从您使用的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();