Java 8 Date Time API – DateTimeFormatter-Beispiel

Neben Lambda-Ausdrücken, virtuellen Methoden, Streams und vielen anderen netten Funktionen hat Java 8 auch ein neues Update erhalten Datums- und Uhrzeit-API die unter der gepflegt wird JSR-310. Einer der größten Vorteile dieser neuen API besteht darin, dass alle datums- und zeitbezogenen APIs im selben Paket java.time zusammengefasst sind.

In meinen vorherigen Artikeln habe ich LocalDate, LocalTime und einige andere APIs erläutert, die mit der Java 8-Version eingeführt wurden. Dieses Beispiel zeigt die Verwendung DateTimeFormatter Klasse mit wenigen wichtigen Methoden, die in dieser Klasse definiert sind. Auch Java 8 hat ein neues Paket eingeführt java.time.format zum Definieren der Klassen im Zusammenhang mit der Datums- und Uhrzeitformatierung.

Wenn Sie Fragen haben, schreiben Sie diese bitte in den Kommentarbereich oder posten Sie sie auf unserer Facebook-Seite. Weitere Artikel zu Java 8 können Sie hier lesen.

DateTimeFormatter

java.time.format.DateTimeFormatter ist die primäre Klasse, die in Java 8 zum Formatieren der Datums- und Uhrzeitwerte verwendet wird. Es gibt eine weitere Klasse DateTimeFormatBuilder, die zum Erstellen der benutzerdefinierten Formatierung verwendet wird. Das erkläre ich im nächsten Beispiel. Zum Verständnis dieser Klasse sind keine weiteren Erklärungen erforderlich. Bitte lesen Sie das folgende Beispiel, in dem ich einige der in dieser Klasse definierten Schlüsselmethoden für die Formatierung von Datums-/Uhrzeitwerten geschrieben habe.

lesen Sie auch:

  • Konvertieren Sie String mit SimpleDateFormat in ein Datum
  • Manipulation des Dateiänderungsdatums in Java
  • Klassenname: DateTimeFormatter
  • Paket: java.time.format
  • Veröffentlichte Version: Java 1.8

LocalDateTime – Wenige Methoden

  • ofPattern(String) – Diese statische Methode gibt die DateTimeFormatter-Instanz für das angegebene Muster zurück.
  • withZone(ZoneId) – Diese Instanzmethode gibt eine Instanz für die angegebene ZoneId zurück
  • format(ZonedDateTime) – Diese Instanzmethode gibt den formatierten String zurück
  • LocalTime.parse(String,DateTimeFormatter.ISO_TIME) – Dies ist eine statische Methode in der LocalTime-Klasse, die die Zeichenfolge übergibt und in das DateTimeFormatter.ISO_TIME-Format formatiert
  • LocalDate.psrse(String,DateTimeFormatter.ISO_DATE) – Dies ist eine statische Methode in der LocalDate-Klasse, die die Zeichenfolge übergibt und in das DateTimeFormatter.ISO_DATE-Format formatiert

DateTimeFormatter – Beispiel

package javabeat.net;

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

/**
 * Java 8 Date Time API - DateTimeFormatter Example
 *
 * @author www.javabeat.net
 *
 */
public class DateTimeFormatterExample {
	public static void main(String[] args) {
		DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter
				.ofPattern("yyyy/MM/dd HH:mm:ss z");
		DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter
				.ofPattern("yyyy/MM/dd");
		DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter
				.ofPattern("dd/MMM/YYYY");
		DateTimeFormatter formatterWithZone = dateTimeFormatter3
				.withZone(ZoneId.of("America/Los_Angeles"));
		ZoneId getZoneMethod = formatterWithZone.getZone();
		LocalTime time = LocalTime
				.parse("10:15:30", DateTimeFormatter.ISO_TIME);
		LocalDate date = LocalDate.parse("2015-04-10",
				DateTimeFormatter.ISO_DATE);
		ZonedDateTime zonedDateTime = ZonedDateTime.now();
		String formatter1 = dateTimeFormatter1.format(zonedDateTime);
		String formatter2 = dateTimeFormatter2.format(zonedDateTime);
		String formatter3 = dateTimeFormatter3.format(zonedDateTime);
		String formatterWithZoneStr = formatterWithZone.format(zonedDateTime);
		System.out.println("DateTimeFormatter Example Demo");
		System.out.println("------------------------------");
		System.out.println("DateTimeFormatter 1 : " + formatter1);
		System.out.println("DateTimeFormatter 2 : " + formatter2);
		System.out.println("DateTimeFormatter 3 : " + formatter3);
		System.out.println("DateTimeFormatter with Zone3 : " + formatterWithZoneStr);
		System.out.println("DateTimeFormatter().getZone() : " + getZoneMethod.getId());
		System.out.println("LocalTime.parser - DateTimeFormatter.ISO_TIME : "
				+ time);
		System.out.println("LocalDate.parser - DateTimeFormatter.ISO_TIME : "
				+ date);
	}
}

Die Ausgabe für das obige Programm lautet:

DateTimeFormatter Example Demo
------------------------------
DateTimeFormatter 1 : 2015/04/14 08:16:24 IST
DateTimeFormatter 2 : 2015/04/14
DateTimeFormatter 3 : 14/Apr/2015
DateTimeFormatter with Zone3 : 13/Apr/2015
DateTimeFormatter().getZone() : America/Los_Angeles
LocalTime.parser - DateTimeFormatter.ISO_TIME : 10:15:30
LocalDate.parser - DateTimeFormatter.ISO_TIME : 2015-04-10

Wenn es Probleme mit dem Format des an die Parse-Methode übergebenen Datums oder der Uhrzeit gibt, wird die folgende Ausnahme von der Anwendung ausgelöst:

Exception in thread "main" java.time.format.DateTimeParseException: Text '201-04-10' could not be parsed at index 0
	at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1948)
	at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1850)
	at java.time.LocalDate.parse(LocalDate.java:400)
	at javabeat.net.DateTimeFormatterExample.main(DateTimeFormatterExample.java:28)

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen