例题1
查找十天前的日期。
package date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Date01 { public static void main(String[] args) throws ParseException { Scanner sca = new Scanner(System.in); System.out.println("请输入一个日期:" ); String str = sca.nextLine(); SimpleDateFormat s = new SimpleDateFormat("yyy-MM-dd"); Date d = s.parse(str); //格式转换 将string转为date Calendar c = Calendar.getInstance(); //Calendar 类是一个抽象类,为操作日历字段(例如获得几天后的日期)提供了一些方法.(c.add) c.setTime(d); c.add(Calendar.DAY_OF_MONTH, -10); SimpleDateFormat time = new SimpleDateFormat("yyy-MM-dd"); System.out.println(time.format(c.getTime())); //String time = s.format(c.getTime()); //System.out.println("十天前的时期为:"+time); } }
例二
时间差问题
package date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Date02 { public static void main(String[] args) throws ParseException { Scanner sca = new Scanner(System.in); System.out.println("请输入一个日期:"); String str = sca.nextLine(); SimpleDateFormat s = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); Date d = s.parse(str); long start = d.getTime(); //开始时间 long end = System.currentTimeMillis(); //系统时间 long result = end-start; long time = result/(1000*60); if(time < 60) { System.out.println(time+"分钟前"); }else if(time < 60*24) { System.out.println(time/60+"小时前"); }else if(time < 60*24*30) { System.out.println(time/(60*24)+"天前"); }else if(time > 60*24*30) { System.out.println(s.format(d.getTime())); } } }