将指定日期转换成日历类,然后用函数进行计算,最后统一格式
package test;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static void main(String[] args) throws ParseException {
// 统一的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = "2202 2 3 07:20";
Date d = parseDate(date);
if (d != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
calendar.add(Calendar.YEAR, -1);
Date resDate = calendar.getTime();
System.out.println("去年的今天:" + sdf.format(resDate));
calendar.setTime(d);
calendar.add(Calendar.MONTH, -1);
resDate = calendar.getTime();
System.out.println("上月的今天:" + sdf.format(resDate));
} else {
System.out.println("未读取到正确时间");
}
}
public static Date parseDate(String inputDate) {
// 支持下多种格式转换
Date date = null;
String[] patterns = { "yyyy MM dd HH:mm", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd HH:mm:ss",
"yyyy/MM/dd HH:mm", "yyyy年MM月dd日", "yyyy-MM-dd", "yyyy/MM/dd", "yyyyMMdd" };
SimpleDateFormat df = new SimpleDateFormat();
for (String pattern : patterns) {
try {
df.applyPattern(pattern);
date = df.parse(inputDate, new ParsePosition(0));
} catch (Exception e) {
System.out.println("cuowu:" + e.getMessage());
}
if (date != null)
break;
}
return date;
}
}
获取系统当前时间,进行计算输出
package test;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class DateUtil {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("当前日期为: "+today);
LocalDate nextYears = today.plus(1, ChronoUnit.YEARS);
LocalDate nextMonths = today.plus(1, ChronoUnit.MONTHS);
LocalDate lastWeek = today.minus(1, ChronoUnit.WEEKS);
System.out.println("一年后的日期为: "+nextYears);
System.out.println("一月后的日期为: "+nextMonths);
System.out.println("一周前的日期为: "+lastWeek);
}
}



