Java 如果当前日期以字符串形式给出,如何查找以前的日期?

Java 如果当前日期以字符串形式给出,如何查找以前的日期?,java,date,Java,Date,如果当前日期以字符串形式给出,如何查找以前的日期?下面是我的代码。有没有更短的解决方案 private static String previousDay(String date) { String[] ymd = date.split("-"); int year = Integer.parseInt(ymd[0]); int month = Integer.parseInt(ymd[1]); int day = Integ

如果当前日期以字符串形式给出,如何查找以前的日期?下面是我的代码。有没有更短的解决方案

   private static String previousDay(String date) {
        String[] ymd = date.split("-");
        int year = Integer.parseInt(ymd[0]);
        int month = Integer.parseInt(ymd[1]);
        int day = Integer.parseInt(ymd[2]);
        String newDate = "";
        if (day > 1 & month > 1)
            newDate = year+"-"+month+"-"+(day-1);
        else if (day == 1 & month > 1) {
            Calendar calendar = new GregorianCalendar(year,month-1, 1);
            int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            newDate = year+"-"+(month-1)+"-"+daysInMonth;
        } else if (day == 1 & month == 1) {
            Calendar calendar = new GregorianCalendar(year,12, 1);
            int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            newDate = year+"-"+12+"-"+daysInMonth;
        }
        return newDate;
    }

从现在开始,您可以使用日期(或日历)实用程序并执行所需的日期操作。

您需要将字符串转换为日期,以便进行日期计算。您可以使用日历查找前一天。根据您的代码,我假设您的日期格式为yyyy-MM-dd

String input = "2009-09-30";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = dateFormat.parse(input);
Calendar cal1 = Calendar.getInstance();
cal1.setTime(myDate);
cal1.add(Calendar.DAY_OF_YEAR, -1);
Date previousDate = cal1.getTime();

嗯,我会使用SimpleDataFormat将字符串还原为java.util.Date对象,然后使用它。将很快发布代码。可能是的副本
String input = "2009-09-30";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = dateFormat.parse(input);
Calendar cal1 = Calendar.getInstance();
cal1.setTime(myDate);
cal1.add(Calendar.DAY_OF_YEAR, -1);
Date previousDate = cal1.getTime();
Date currentDate= new Date();

Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
calendar.add(Calendar.DAY_OF_YEAR, -1);

Date previousDate = calendar.getTime();