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 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