Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java格式化本地时间_Java_String_Time_Localtime - Fatal编程技术网

用java格式化本地时间

用java格式化本地时间,java,string,time,localtime,Java,String,Time,Localtime,我正在创建JavaFX应用程序,每次创建新的列表单元格时,我都需要使用时间标签。我需要将当前时间为HH:MM格式的字符串直接放入标签构造函数,该构造函数将string作为参数 我找到并使用了java.util.Date: Label timeLabel = new Label(new SimpleDateFormat("HH:MM").format(new Date())); 但是它显示了错误的时区,所以我将使用java.time和LocalTime类 有没有办法在一行中获得相同的字符串结果?

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

我找到并使用了
java.util.Date

Label timeLabel = new Label(new SimpleDateFormat("HH:MM").format(new Date()));
但是它显示了错误的时区,所以我将使用
java.time
LocalTime

有没有办法在一行中获得相同的字符串结果?
谢谢你的帮助:)

试试这样的方法:

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

(这将使用默认区域设置,有关详细信息,请参阅)


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

在新的应用程序中使用Java8类型(Java.time)可能更好。您可以首先创建一个:

然后获取当前时间并将其格式化:

Label timeLabel = new Label(LocalTime.now().format(dtf));
可以通过多种方式创建LocalTime实例。第一种方法是创建一个LocalTime实例,该实例表示当前的确切时间。这看起来是这样的:

LocalTime localTime = LocalTime.now();
LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);
创建LocalTime对象的另一种方法是从特定的小时、分钟、秒和纳秒数创建它。这看起来是这样的:

LocalTime localTime = LocalTime.now();
LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);
还有其他版本的of()方法,它只需要小时和分钟,或小时、分钟和秒作为参数

您可以使用以下方法访问LocalTime对象的小时、分钟、秒和纳秒:

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

看看这个,它帮了我很多-

好答案。我通常会指定时区,例如
LocalTime.now(ZoneId.systemDefault())
。第一,这清楚地表明获取当前时间是一个依赖于时区的操作。第二,它告诉读者和你自己,你已经考虑过了地点的选择并做出了决定。当然,这应该是“……时区的选择……”@奥列夫