public static void main(String[] args) throws Exception {
String times = "2018-12-12 12:12:12";// 计算其他格式修改此处
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 计算其他格式修改此处
Date dateOfDate = df.parse(times);
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateOfDate);
calendar.add(Calendar.YEAR, -1);// 正数代表加,负数代表减
calendar.add(Calendar.MONTH, -1);
calendar.add(Calendar.DATE, -1);
calendar.add(Calendar.HOUR, -1);
calendar.add(Calendar.MINUTE, -1);
calendar.add(Calendar.SECOND, -1);
String string= df.format(calendar.getTime());
System.out.println(string);
}
可以单独抽出某个作为一个方法,如
/**
* 计算日期增加多少分钟或者减去多少分钟后的日期(局限于(yyyy-MM-dd HH:mm:ss格式))
* @param minutes 加几分钟或者减几分钟,负数代表减
* @param date String类型日期
* @return String
* @throws ParseException
*/
public static String getDateByMinute(String date,int minutes) throws ParseException{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");//计算其他格式修改此处
Date dateOfDate = df.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateOfDate);
calendar.add(Calendar.MINUTE, minutes);//加多少分钟或者减去多少分钟
String string= df.format(calendar.getTime());
return string;
}
根据时间的毫秒值获取天、时、分、秒
int day = (int)(millisecond / (24 * 60 * 60 * 1000));
int hour = (int) (millisecond / (60 * 60 * 1000) - day * 24);
int min = (int)((millisecond / (60 * 1000)) - day * 24 * 60 - hour * 60);
int sec = (int)(millisecond/1000-day*24*60*60-hour*60*60-min*60);