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