在12小时JAVAFX转换24小时制

时间:2015-10-04 09:57:14

标签: java javafx

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

2 个答案:

答案 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();