2013-04-14 47 views
0

如何將這個11/03/2009-20:06:16轉換爲Date對象,以便我可以比較兩個日期。我不斷收到java.lang.IllegalArgumentException異常:如果我用下面的實施無法格式化給定的對象作爲一個日期的錯誤。我需要的輸出爲Date對象格式星期二7月14日1時32分31秒2009年將字符串日期轉換爲日期對象

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Dateaf { 

    /** 
    * @param args 
    * @throws ParseException 
    */ 
    public static void main(String[] args) throws ParseException { 
     // TODO Auto-generated method stub 

     String text = "11/03/2009-20:06:16"; 

     SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy-hh:mm:ss"); 

     Date date = dateParser.parse(text); 
     System.out.println(date); 

    } 

} 
+1

http://stackoverflow.com/questions/1543481/how-to- convert-string-object-to-date-object – Madara

回答

3

sdf.format()需要一個Date對象並返回String。您正在向其傳遞String

+0

我需要輸出爲帶格式的日期對象Tue Jul 14 01:32:31 2009 – jrdnsingh89

+0

日期對象t沒有格式,它只是1970年1月1日以來的毫秒數。使用'SimpleDateFormat'將'String'轉換爲'Date',**另一個'SimpleDateFormat' **將'Date'轉換爲'String'的格式。 – SJuan76

+0

我得到這個錯誤Unparseable date:「11-03-2009 20:06:16」.. – jrdnsingh89

-1

Java有文本包,它爲我們提供了預定義的類文本

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Main { 
public static void main(String[] args) throws Exception{ 
DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 

Date today = df.parse("20/12/2005"); 
System.out.println("Today = " + df.format(today)); 
} 
} 

有這樣

String date = "2000-11-01"; 
java.sql.Date javaSqlDate = java.sql.Date.valueOf(date); 
+1

請添加更多詳細信息 –

2

的另一種方式你都非常接近,只是下降的呼叫format

Date date = sdf.parse(text); 

所以:

String text = "11-03-2009 20:06:16"; 

SimpleDateFormat dateParser = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
                  //^^ capital H for 24 hour 

Date date = dateParser.parse(text); 

並打印(從您的格式爲「星期二7月14日1時32分31秒2009年」的評論):

SimpleDateFormat dateFormatter = new SimpleDateFormat("EE MM dd HH:mm:ss yyyy"); 

System.out.println(dateFormatter.format(date)); 

SimpleDateFormat javadoc是格式一個很好的參考。

編輯

這裏OP的編輯之後是一個完整的例子

public static void main(String[] args) throws ParseException { 
    final String text = "11/03/2009-20:06:16"; 
    final SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy-HH:mm:ss"); 
    final Date date = dateParser.parse(text); 
    final SimpleDateFormat dateFormatter = new SimpleDateFormat("EE MMM dd HH:mm:ss yyyy"); 
    System.out.println(dateFormatter.format(date)); 
} 

輸出:

Tue Nov 03 20:06:16 2009 
+0

如果對此/會有什麼變化? – jrdnsingh89

+0

在傳入格式?將MM-dd-yyyy HH:mm:ss'改爲MM/dd/yyyy HH:mm:ss'。 –

+0

多一個問題HH和HH沒有影響我更新了代碼.. – jrdnsingh89

相關問題