Форматирование локального времени в java
Я создаю свое приложение JavaFX, и мне нужно использовать метку времени каждый раз, когда создается новая ячейка списка. Мне нужно поместить строку с текущим временем в HH:MM
формат непосредственно в конструктор меток, который принимает String
в качестве параметра.
Я нашел и использовал java.util.Date
s:
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