-2

有人可以详细说明为什么我的以下代码会引发无法解析的异常吗?

private Date convertSTRtoDATE(String str)
{
    str=str.trim();
    System.out.println(str+"\n20 juni 2013");
    try {
        Date date=new SimpleDateFormat("d MMMM yyyy",new Locale("da", "DK")).parse(str);
        return date;
    } 
    catch (ParseException e) {
        e.printStackTrace();
    return null;
    }
}

而如果我改为

Date date=new SimpleDateFormat("d MMMM yyyy",new Locale("da", "DK")).parse("20 juni 2013");

它完美无缺?在第一次 println 输出

20 juni 2013
20 juni 2013

没有任何空格..

堆栈跟踪:

java.text.ParseException: Unparseable date: "20 juni 2013"    
at java.text.DateFormat.parse(DateFormat.java:357)
at com.panos.converter.convertSTRtoDATE(Crawler.java:226)

和价值

str="20 juni 2013"

正如我从调试和输出中看到的那样。

4

1 回答 1

1

这对我来说很好 -

public class Dates {

    /**
     * @param args
     */
    public static void main(String[] args) {
        convertSTRtoDATE("20 juni 2013");
    }

    private static Date convertSTRtoDATE(String str)
    {
        str=str.trim();
        System.out.println(str);

        try {
            Date date=new SimpleDateFormat("d MMMM yyyy",new Locale("da", "DK")).parse(str);
              System.out.println(date);
            return date;
        } 
        catch (ParseException e) {
            e.printStackTrace();
        return null;
        }
    }

生产输出,

20 juni 2013
 Thu Jun 20 00:00:00 IST 2013   
于 2013-06-24T18:40:49.643 回答