wake-up-neo.net

Formatieren der Ortszeit in Java

Ich erstelle meine JavaFX-Anwendung und muss jedes Mal eine Zeitmarke verwenden, wenn eine neue Listenzelle erstellt wird. Ich muss den String mit der aktuellen Uhrzeit im HH:MM-Format direkt in den Label-Konstruktor einfügen, der String als Parameter verwendet.

Ich habe Java.util.Date gefunden und verwendet:

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

aber es zeigt die falsche Zeitzone an, also werde ich Java.time und LocalTime verwenden.

Gibt es eine Möglichkeit, dasselbe String-Ergebnis in einer Zeile zu erzielen? Vielen Dank für Ihre Hilfe :)

8
Daniel Piskorz

Es ist wahrscheinlich besser, Java 8-Typen (Java.time) in einer neuen Anwendung zu verwenden. Sie können zuerst eine DateTimeFormatter erstellen:

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

Und dann die aktuelle Uhrzeit abrufen und formatieren:

Label timeLabel = new Label(LocalTime.now().format(dtf));
21
LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))

(Dies verwendet das Standardgebietsschema, siehe https://docs.Oracle.com/javase/8/docs/api/Java/time/format/DateTimeFormatter.html#ofPattern-Java.lang.String- für Mehr).

Besser wäre es jedoch, das Formatierungsprogramm in ein static final-Feld zu schreiben. Auf diese Weise wird sie nur einmal erstellt, und nicht bei jeder Ausführung der Linie. Es ist fast sicher nicht wirklich wichtig für diese Anwendung, aber es ist besser, von Anfang an gute Gewohnheiten zu verwenden.

7
Alexey Romanov

Versuchen Sie etwas so:

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

Siehe: http://docs.Oracle.com/javase/8/docs/api/Java/util/Formatter.html

2
Usagi Miyamoto

Sie können eine LocalTime -Instanz auf verschiedene Arten erstellen. Die erste Möglichkeit besteht darin, eine LocalTime-Instanz zu erstellen, die die genaue Uhrzeit darstellt. So sieht das aus:

LocalTime localTime = LocalTime.now();

Ein anderes Verfahren zum Erstellen eines LocalTime-Objekts besteht darin, es aus einer bestimmten Anzahl von Stunden, Minuten, Sekunden und Nanosekunden zu erstellen. So sieht das aus:

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

Es gibt auch andere Versionen der of () - Methode, die nur Stunden und Minuten oder Stunden, Minuten und Sekunden als Parameter benötigt.

Mit den folgenden Methoden können Sie auf Stunden, Minuten, Sekunden und Nanosekunden eines LocalTime-Objekts zugreifen:

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

schaut euch das an, es hat mir geholfen. http://tutorials.jenkov.com/Java-date-time/localtime.html

0
Kobi Lehrer