Dan*_*orz 9 java string time localtime
我正在创建我的JavaFX应用程序,每次创建新的列表单元格时我都需要使用时间标签.我需要将带有当前时间的字符串HH:MM直接放入Label构造函数中,该构造函数String作为参数.
我发现并使用了java.util.Date:
Label timeLabel = new Label(new SimpleDateFormat("HH:MM").format(new Date()));
Run Code Online (Sandbox Code Playgroud)
但它显示错误的时区,所以我将使用java.time和LocalTime上课.
有没有办法在一行中获得相同的字符串结果?谢谢您的帮助 :)
Man*_*dis 23
在新应用程序中使用Java 8类型(java.time)可能更好.您可以先创建一个DateTimeFormatter:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");
Run Code Online (Sandbox Code Playgroud)
然后获取当前时间并格式化它:
Label timeLabel = new Label(LocalTime.now().format(dtf));
Run Code Online (Sandbox Code Playgroud)
LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))
Run Code Online (Sandbox Code Playgroud)
(这将使用默认语言环境,请参阅https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String-了解更多信息).
但更好的做法是将格式化程序放入static final字段中.这样,它只创建一次,而不是每次行被执行.几乎可以肯定这个应用并不重要,但最好从一开始就养成良好的习惯.