2013-04-14 102 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

相关问题