如何将日历日期转换为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。


当前回答

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

String myString=format1.format(date);

其他回答

我发现了这段代码,其中日期以一种格式与数据库中的日期字段进行比较…也许这对你有帮助…

当您使用simpledateformat将字符串转换为日期时,它很难与mysql数据库中的日期字段进行比较。

所以转换java字符串日期格式使用select STR_to_DATE('yourdate','%m/%d/%Y')——>在这种格式,然后你将得到mysql日期字段的确切日期格式。

http://javainfinite.com/java/java-convert-string-to-date-and-compare/

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

String myString=format1.format(date);
public static String ThisWeekStartDate(WebDriver driver) {
        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        System.out.println("Before Start Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("Start Date " + CurrentDate);
          return CurrentDate;

    }
    public static String ThisWeekEndDate(WebDriver driver) {

        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        System.out.println("Before End Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("End Date " + CurrentDate);
          return CurrentDate;
    }

你的代码是错误的。没有必要解析日期并将其保留为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();
}
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天。