Beheben Sie die Java.Text.ParseException: Unparseable Date Error in Java
Dieses Tutorial demonstriert den Fehler java.text.ParseException: Unparseable date
in Java.
Beheben Sie den Fehler java.text.ParseException: Unparseable date
in Java
Der Fehler java.text.ParseException: Unparseable date
tritt normalerweise bei der Verwendung der Klasse SimpleDateFormat
in Java auf. Diese Klasse wird verwendet, um das Datum in Java zu formatieren.
Meistens tritt der Fehler java.text.ParseException: Unparseable date
auf, wenn wir versuchen, den String date in ein anderes gewünschtes Datumsformat zu konvertieren. Es gibt hauptsächlich drei Probleme mit der Datumszeichenfolge, die diesen Fehler verursachen:
Bei Verwendung des falschen Datumsformats
Das Datumsformat ist sehr wichtig beim Analysieren des Datums in das gewünschte Format. Beim Datum wird in Java zwischen Groß- und Kleinschreibung unterschieden, daher sollten alle Elemente in Groß- und Kleinschreibung korrekt sein.
Die folgende Tabelle zeigt die korrekte Syntax für jedes Datumselement:
Name | Syntax |
---|---|
Day |
dd |
Month |
MM |
Year |
yyyy |
Hour |
HH |
Minute |
mm |
Second |
ss |
Gemäß der obigen Tabelle lautet das korrekte Datumsformat in Java:
SimpleDateFormat DemoDateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");
Bei Verwendung der falschen Lokalisierung
Die Lokalisierung ist ein weiterer wichtiger Faktor beim Schreiben des Datums in Java. Wenn wir das Datum in ein englisches Gebietsschema einfügen und versuchen, es auf einem anderen System zu parsen, das nicht englisch ist, wird der Fehler java.text.ParseException: Unparseable date
ausgegeben.
Wir müssen das Gebietsschema im Datumsformat angeben, damit die Daten auf anderen Systemen problemlos analysiert werden können. Denn wenn wir nichts angeben, verwendet die JVM das Standardgebietsschema.
Hier ist das Beispiel für die Locale-Syntax:
SimpleDateFormat DemoDateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss", Locale.English);
Bei Verwendung der falschen Zeitzone
Die Verwendung der richtigen Zeitzone ist auch beim Schreiben des Datumsformats in Java wichtig. Die Klasse SimpleDateFormat
ist so programmiert, dass sie die Standardzeitzone, die aktuelle Zeitzone der JVM, verwendet, wenn sie nicht im Format angegeben ist.
Die JVM-Zeitzone kann sich je nach Standort des Benutzers ändern. Wenn wir also in diesem Fall die Zeitzone nicht festlegen, tritt ein Fehler wie falsches Format oder unerwarteter Fehler auf.
Hier ist die Syntax zum Festlegen der Zeitzone in Java:
DemoDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Versuchen wir ein Beispiel, das den Fehler java.text.ParseException: Unparseable date
in Java auslöst:
package delftstack;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Example {
public static void main(String[] arg) throws ParseException {
String DemoDate = "Tue Aug 16 12:30:10 IST 2022";
SimpleDateFormat Simple_Date_Format = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");
Date Current_Date;
Current_Date = Simple_Date_Format.parse(DemoDate);
System.out.println(Current_Date);
}
}
Das Datumsmuster im obigen Code entspricht nicht der Eingabezeichenfolge, deshalb wird der folgende Fehler ausgegeben:
Exception in thread "main" java.text.ParseException: Unparseable date: "Tue Aug 16 12:30:10 IST 2022"
at java.base/java.text.DateFormat.parse(DateFormat.java:399)
at delftstack.Example.main(Example.java:13)
Die Lösung mit dem richtigen Datumsformat gemäß der angegebenen Zeichenfolge lautet:
package delftstack;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Example {
public static void main(String[] arg) throws ParseException {
String DemoDate = "Tue Aug 16 12:30:10 IST 2022";
SimpleDateFormat Simple_Date_Format =
new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date Current_Date;
Current_Date = Simple_Date_Format.parse(DemoDate);
System.out.println(Current_Date);
}
}
Die Ausgabe für den Code ist:
Tue Aug 16 15:30:10 PKT 2022
Wenn die angegebene Ausgabe nicht gut aussieht, können wir ein weiteres SimpleDateFormat
hinzufügen und das Current_Date
nach unserer Wahl formatieren. Siehe Beispiel:
package delftstack;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Example {
public static void main(String[] arg) throws ParseException {
String DemoDate = "Tue Aug 16 12:30:10 IST 2022";
SimpleDateFormat Simple_Date_Format =
new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date Current_Date;
Current_Date = Simple_Date_Format.parse(DemoDate);
SimpleDateFormat Print_Date = new SimpleDateFormat("EE MMM d, yyyy HH:mm:ss");
System.out.println(Print_Date.format(Current_Date));
}
}
Der obige Code druckt das Datum in einem leichter lesbaren Format. Siehe Ausgabe:
Tue Aug 16, 2022 15:30:10
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn FacebookVerwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse