将字符串日期转换为日期对象

时间:2013-04-14 21:48:26

标签: java

如何将11/03 / 2009-20:06:16转换为Date对象,以便我可以比较两个日期。我一直得到java.lang.IllegalArgumentException:如果我使用下面的实现,不能将给定的Object格式化为Date错误。我需要输出为日期对象,格式为Tue Jul 14 01: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);

    }

}

3 个答案:

答案 0 :(得分:3)

sdf.format()获取Date个对象并返回String。您正在向其传递String

答案 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);

并打印(来自您的评论格式为“Tue Jul 14 01: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

答案 2 :(得分:-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);