Java Datumsformat ändern

Rashmi Patidar 12 Oktober 2023
Java Datumsformat ändern

Es gibt verschiedene Optionen, um eine DatumsZeichenkette in das Datumsformat zu konvertieren. Im Folgenden sind Möglichkeiten aufgeführt, mit denen die gewünschten Ergebnisse erzielt werden können. Lassen Sie uns die Vielfalt der Möglichkeiten aus dem folgenden Codeblock verstehen.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class StringToDateFormat {
  public static void main(String[] args) throws ParseException {
    System.out.print("Way1: ");
    SimpleDateFormat dt = new SimpleDateFormat("yyyyy-MM-dd");
    System.out.print(dt.parse("2021-11-05") + "\n");

    System.out.print("Way2: ");
    SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss", Locale.ENGLISH);
    System.out.print(formatter.parse("21/JAN/2021 21:35:56") + "\n");

    System.out.print("Way3: ");
    DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);
    System.out.print(LocalDate.parse("Wed, 5 May 2021", formatter1) + "\n");

    System.out.print("Way4: ");
    System.out.print(LocalDate.parse("2021-05-31") + "\n");
  }
}

In Way1 wird eine Instanz der Klasse SimpleDateFormat erstellt. Es nimmt einen pattern-Wert des Formats an, in dem die DatumsZeichenkette eingegeben wird. Auf diese Weise haben wir ein Datum im Format yyyy-MM-dd eingegeben. Die Instanziierung wirft auch einige Ausnahmen wie NullPointerException und IllegalArgumentException, wenn der Parameter null oder illegal ist. Mit dem kürzlich erstellten formatter-Objekt initialisieren wir nun eine parse-Methode. Die Methode nimmt die DatumsZeichenkette als Eingabewert und gibt nach dem Parsen den Datentyp Date zurück. Es wirft ParseException, wenn die angegebene DatumsZeichenkette und der Formatierer nicht übereinstimmen oder intern die DatumsZeichenkette nicht geparst wird.

In Way2 wird wiederum die Klasse SimpleDateFormat verwendet, um ein Format zu erstellen, das eingegeben werden soll. Aber jetzt wird ein überschriebener Konstruktor von SimpleDateFormat aufgerufen. Der erste Parameter ist das format/pattern des Date-Strings. Eine andere ist Locale, die eine bestimmte geografische Region oder ein Gebiet definiert. Note: Alle Locales sind in der Methode nicht erlaubt. Überprüfen Sie nun das Muster dd/MMM/yyyy HH:mm: ss, das einen Monat im mmm-Format hatte. Das Format impliziert, dass die Kurzform der Monate in der mmm-Form akzeptiert wird. Darüber hinaus kann es Stunden, Minuten und Sekunden in der FormatZeichenkette dauern.

In Way3 wird die Klasse DateTimeFormat verwendet, um Datum-Uhrzeit-Objekte zu formatieren und zu drucken. Die Methode ofPattern wird verwendet, um einen Formatierer des gewünschten Musters vorzubereiten. Nun wird die statische Methode der Klasse LocalDate aufgerufen, um das Datum zu analysieren. Die Methode ist parse, die den zu analysierenden Text übernimmt, und DateTimeFormatter zum Festlegen des Formats des eingegebenen Datumstextes. Die Methode gibt die LocalDate-Instanz zurück und ist nicht null. Es wirft DateTimeParseException, wenn der Text nicht geparst werden kann. Das Format kann zusätzlich den Tagesnamen annehmen. Das Kürzel EEE bezeichnet dasselbe im Formatierer.

In Way4 wird direkt die Methode parse aufgerufen, die eine statische Factory-Methode der Klasse LocalDate ist. Diesmal wird in keiner Weise eine Formatierungsinstanz oder ein Muster definiert. Nun nimmt die Funktion den eingegebenen Datumsstring in der Form yyyy-MM-dd an. Der angegebene Datumsstring muss immer ein gültiges Datum darstellen und wird mit dem Format DateTimeFormatter.ISO_LOCAL_DATE konvertiert. Die Methode wirft die Ausnahme DateTimeParseException, wenn der Text nicht geparst werden kann.

Unten sehen Sie die Ausgabe des Codes, um die DatumsZeichenkette in das Formular Date zu konvertieren.

Way1: Fri Nov 05 00:00:00 IST 2021
Way2: Thu Jan 21 21:35:56 IST 2021
Way3: 2021-05-05
Way4: 2021-05-31
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Verwandter Artikel - Java Date