本篇文章介绍了 Java 中的 java.text.ParseException: Unparseable date 错误。
修复 Java 中的 java.text.ParseException: Unparseable date 错误
在 Java 中使用 SimpleDateFormat 类时,通常会出现 java.text.ParseException: Unparseable date 错误。 该类用于在 Java 中格式化日期。
大多数时候,当我们尝试将字符串日期转换为另一种所需的日期格式时,会出现 java.text.ParseException: Unparseable date 错误。 日期字符串主要存在三个问题导致此错误:
使用错误的日期格式时
将日期解析为所需格式时,日期格式非常重要。 Java 中的日期区分大小写,因此所有元素的大小写都应正确。
下表显示了日期每个元素的正确语法:
名称 | 语法 |
---|---|
Day | dd |
Month | MM |
Year | yyyy |
Hour | HH |
Minute | mm |
Second | ss |
根据上表,Java中日期的正确格式为:
SimpleDateFormat DemoDateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");
当使用错误的本地化时
在 Java 中编写日期时,本地化是另一个重要因素。 如果我们将日期放在英语语言环境中并尝试在另一个非英语系统上解析它,它将抛出 java.text.ParseException: Unparseable date 错误。
我们需要以日期格式指定区域设置,这样在其他系统上解析数据就没有问题。 因为如果我们不指定,JVM 将使用默认区域设置。
以下是区域设置语法的示例:
SimpleDateFormat DemoDateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss", Locale.English);
使用错误时区时
在 Java 中编写日期格式时,使用正确的时区也很重要。 SimpleDateFormat 类被编程为使用默认时区,即 JVM 的当前时区(如果格式中未指定)。
JVM时区可以根据用户的位置而变化,因此如果我们在这种情况下不设置时区,将会出现格式错误或意外错误等错误。
以下是 Java 中设置时区的语法:
DemoDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
让我们尝试一个在 Java 中抛出 java.text.ParseException: Unparseable date 错误的示例: