在 java 中格式化本地时间

2022-09-02 11:37:27

我正在创建我的JavaFX应用程序,每次创建新列表单元格时都需要使用时间标签。我需要将具有当前时间的字符串直接放入标签构造函数中,该构造函数作为参数。HH:MMString

我发现并使用了 ::java.util.Date

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

但它显示了错误的时区,所以我要使用和上课。java.timeLocalTime

有没有办法在一行中实现相同的字符串结果?感谢您的帮助:)


答案 1

在新应用程序中使用Java 8类型(java.time)可能更好。您可以先创建一个 DateTimeFormatter

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

然后获取当前时间并设置其格式:

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

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

(这将使用默认区域设置,请参阅 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ofPattern-java.lang.String - 了解更多信息)。

但更好的做法是将格式化程序放入一个字段中。这样,它只创建一次,而不是每次删除行时。对于这个应用程序来说,这几乎肯定并不重要,但最好从一开始就使用良好的习惯。static final