Форматирование локального времени в java

Я создаю свое приложение JavaFX, и мне нужно использовать метку времени каждый раз, когда создается новая ячейка списка. Мне нужно поместить строку с текущим временем в HH:MM формат непосредственно в конструктор меток, который принимает String в качестве параметра.

Я нашел и использовал java.util.Dates:

Label timeLabel = new Label(new SimpleDateFormat("HH:MM").format(new Date()));

но он показывает неправильный часовой пояс, поэтому я собираюсь использовать java.time и LocalTime класса.

есть ли способ достичь того же результата строки в одной строке? спасибо за ваш помогите :)

4 ответов


вероятно, лучше использовать типы Java 8 (java.время) в новом приложении. Вы можете сначала создать DateTimeFormatter:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");

а затем получить текущее время и отформатировать его:

Label timeLabel = new Label(LocalTime.now().format(dtf));

LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))

(это будет использовать локаль по умолчанию, см. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String- for more).

но лучшей практикой было бы поместить форматер в


попробуйте что-то вроде этого:

Label timeLabel = new Label(String.format("%tR", LocalTime.now()));

см.:http://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html


Вы можете создать местное время экземпляр несколькими способами. Первый способ-создать экземпляр LocalTime, который представляет точное время now. Вот как это выглядит:

LocalTime localTime = LocalTime.now();

другой способ создать объект LocalTime-создать его из определенного количества часов, минут, секунд и наносекунд. Вот как это выглядит:

LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);

существуют также другие версии метода of (), который занимает только часы и минуты или часы, минуты и секунды как параметры.

вы можете получить доступ к часам, минутам, секундам и наносекундам объекта LocalTime, используя следующие методы:

  • getHour()
  • getMinute()
  • getSecond()
  • getNano()

зацени, он мне очень помог- http://tutorials.jenkov.com/java-date-time/localtime.html