如何将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);
}
}
答案 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);