字符串到日期,月份全部小写在java中

时间:2012-01-18 09:15:13

标签: java date

我有一个包含日期的字符串,格式如下:

dd-mm-yyyy

月份全部小写。例如:    25-AUG-2019 现在我尝试使用SimpleDateFormat将我的字符串转换为Date,但我有以下异常:

java.text.ParseException: Unparseable date: "25-aug-2019"
    at java.text.DateFormat.parse(Unknown Source)
    at org.whoislibrary.servers.WhoisCom.parseResponse(WhoisCom.java:37)
    at org.whoislibrary.WhoisAbstract.executeQuery(WhoisAbstract.java:44)
    at org.whoislibrary.WhoisCommand.executeQuery(WhoisCommand.java:69)
    at org.whoislibrary.WhoisMain.main(WhoisMain.java:10)

这是我使用的代码:

DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
try {
        Date expDate = df.parse(dateString).trim());
    System.out.println(expDate.toString());
} catch (ParseException e) {
    e.printStackTrace();
}                   

我认为问题在于MM指的是以大写字母开头的月份名称(8月,7月等)。有一个选项,或类似SimpleDateFormat的类,可以帮助我将该字符串转换为Date。还是必须手动完成?

5 个答案:

答案 0 :(得分:4)

你的代码很好:

new SimpleDateFormat("dd-MM-yyyy")

应该是:

new SimpleDateFormat("dd-MMM-yyyy")

由于字符串中的月份部分有3个字母(MMM)而不是2(MM)

答案 1 :(得分:3)

使用dd-MMM-yyyy

答案 2 :(得分:1)

您的日期“25-aug-2019”格式为"dd-MMM-yyyy",而非"dd-MM-yyyy"。所以你得到解析错误。您应该在创建SimpleDateFormat对象时使用"dd-MMM-yyyy"

答案 3 :(得分:0)

 DateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    try {
            Date expDate = df.parse("25-aug-2019");
        System.out.println(expDate.toString());
    } catch (ParseException e) {
        e.printStackTrace();
    }     

答案 4 :(得分:0)

参考javaDocs java.text.SimpleDateFormat