在12小时JAVAFX中转换24小时时钟



我想制作一个显示系统时间的模拟时钟。我的代码工作完美,但我唯一的问题是,我想在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();

相关内容

  • 没有找到相关文章