【发布时间】:2020-09-05 16:43:20
【问题描述】:
我正在获取格式为 yyyy-MM-dd 的日期。
我将这些提取为一个字符串,如下所示:
String date = "2020-09-05";
现在我想把它转换成EEE, d MMM yyyy格式,所以结果应该是:Sat, 5 Sep 2020。
我尝试像这样重新格式化它:
Date convertedDate = new SimpleDateFormat(EEE, d MMM yyyy).parse(date);
出于某种原因,这个问题以及许多试图绕过它的尝试都以java.text.ParseException: Unparseable date "2020-09-05" 告终。
我不能从这样的字符串转换日期吗?有没有更好的方法将字符串重新格式化为其他格式?
【问题讨论】:
-
您发布的代码是无效的 Java。请仔细检查您写的内容。
-
尝试首先以现有格式解析日期,然后以所需格式输出您将其解析为的日期。在内部,数据结构始终以相同的方式格式化其数据,而您不知道那是什么 - 只有当您告诉数据结构以特定形式输出其数据时才重要。
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。