如何将日历日期转换为yyyy-MM-dd格式。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);            
Date inActiveDate = null;
try {
    inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

这将产生inActiveDate = Wed september 26 00:00:00 IST 2012。但我需要的是2012-09-26。我的目的是使用Hibernate标准将这个日期与数据库中的另一个日期进行比较。我需要date对象的格式是yyyy-MM-dd。


当前回答

为了解析java.util.Date对象,您必须首先使用自己的格式将其转换为String。

inActiveDate = format1.parse(  format1.format(date)  );

但我认为你在这里是多余的。

其他回答

我不知道你们怎么想,但我总想把这些东西当做一句俏皮话。其他的答案都很好,也很好用,但这里把它浓缩成一行。现在你脑子里的代码行数就少了:-)。

下面是一个班轮:

String currentDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 7);
Date date = c.getTime();
SimpleDateFormat ft = new SimpleDateFormat("MM-dd-YYYY");
JOptionPane.showMessageDialog(null, ft.format(date));

这将在JOption窗口窗格中以月、日和年的格式显示您的日期+ 7天。

你的代码是错误的。没有必要解析日期并将其保留为date对象。

当您希望将日历日期对象显示为字符串时,可以对其进行格式化。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");          
String inActiveDate = null;
try {
    inActiveDate = format1.format(date);
    System.out.println(inActiveDate );
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

为了解析java.util.Date对象,您必须首先使用自己的格式将其转换为String。

inActiveDate = format1.parse(  format1.format(date)  );

但我认为你在这里是多余的。

date对象不能以自定义格式表示日期,而必须使用SimpleDateFormat。返回字符串的格式方法。

String myString=format1.format(date);