package com.xiaobing;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class GetTime {
public static String getNewTime(int s){
long ms = 0;
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
String start_time = sdf.format(new Date());
System.out.println("开 始 时 间:"+start_time);
try {
//s转为ms
ms = sdf.parse(start_time).getTime()+s*1000;
} catch (Exception e) {
e.printStackTrace();
}
Date date = new Date(ms);
System.out.println("时间提前1月:"+sdf.format(date));
Calendar calendar = Calendar.getInstance();//日历对象
calendar.setTime(date);//设置当前日期
calendar.add(Calendar.MONTH, -1);//月份减一
calendar.add(Calendar.DAY_OF_MONTH, -1);//日减一
System.out.println("当前延后"+s+"s:"+sdf.format(calendar.getTime()));//输出格式化的日期
String end_time = sdf.format(new Date());
long ms2 = 0;
try {
ms2 = sdf.parse(end_time).getTime() - sdf.parse(start_time).getTime();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("end_time and start_time 耗时:"+ms2 +"ms");
return sdf.format(calendar.getTime());
}
}
class Test{
public static void main(String[] args) throws Exception {
String className = "com.xiaobing.GetTime";
String methodName = "getNewTime";
Class clz = Class.forName(className);
Object obj = clz.newInstance();
//获取方法
Method m = obj.getClass().getDeclaredMethod(methodName, int.class);
//调用方法
String result = (String)m.invoke(obj, 1);
System.out.println("反射调用方法:"+result);
}
}
开 始 时 间 : 2021-11-26 11:22:40
时间提前1月:2021-12-27 11:22:41
当 前 延后1s: 2020-11-26 11:22:41
end_time and start_time 耗时:0ms
反射调用方法: 2020-11-26 11:22:41