I\'m creating my JavaFX application and I need to use time label every time new list cell is created. I need to put the string with current time in HH:MM
format
LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))
(this will use the default locale, see https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String- for more).
But better practice would be to put the formatter into a static final
field. This way it's only created once instead of every time the line is exectuted. It nearly certainly doesn't really matter for this application, but it's better to use good habits from the beginning.
It's probably better to use Java 8 types (java.time) in a new application. You can first create a DateTimeFormatter:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");
And then get the current time and format it:
Label timeLabel = new Label(LocalTime.now().format(dtf));
Try something like this:
Label timeLabel = new Label(String.format("%tR", LocalTime.now()));
See: http://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html
You can create a LocalTime instance in several ways. The first way is to create a LocalTime instance that represents the exact time of now. Here is how that looks:
LocalTime localTime = LocalTime.now();
Another way to create a LocalTime object is to create it from a specific amount of hours, minutes, seconds and nanoseconds. Here is how that looks:
LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);
There are also other versions of the of() method that only takes hours and minutes, or hours, minutes and seconds as parameters.
You can access the hours, minutes, seconds and nanosecond of a LocalTime object using these methods:
check this out, it helped me alot- http://tutorials.jenkov.com/java-date-time/localtime.html