清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
获得当前输入日期前(后)x天的日期,写了几种方法。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * * @ClassName: BeforeOrAfterDate * * @Description: 获得当前输入日期前(后)x天的日期 * @author PineTree * @date 2014年12月29日 下午3:52:46 * @version */ public class BeforeOrAfterDate { /** * * 查询当前日期前(后)x天的日期 * * @param date 当前日期 * @param day 天数(如果day数为负数,说明是此日期前的天数) * @return yyyy-MM-dd */ public String beforNumDay(Date date, int day) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.DAY_OF_YEAR, day); return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); } /** * * 查询当前日期前(后)x天的日期 * * @param date 当前日期 * @param day 天数(如果day数为负数,说明是此日期前的天数) * @return yyyyMMdd */ public String beforNumberDay(Date date, int day) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.DAY_OF_YEAR, day); return new SimpleDateFormat("yyyyMMdd").format(c.getTime()); } /** * 查询当前日期前(后)x天的日期 * * @param millis 当前日期毫秒数 * @param day 天数(如果day数为负数,说明是此日期前的天数) * @return long 毫秒数只显示到天,时间全为0 * @throws ParseException */ public long beforDateNum(long millis, int day) throws ParseException { Calendar c = Calendar.getInstance(); c.setTimeInMillis(millis); c.add(Calendar.DAY_OF_YEAR, day); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(c.getTimeInMillis()); Date newDate = sdf.parse(sdf.format(date)); return newDate.getTime(); } /** * 查询当前日期前(后)x天的日期 * * @param millis 当前日期毫秒数 * @param day 天数(如果day数为负数,说明是此日期前的天数) * @return yyyy-MM-dd */ public String beforLongDate(long millis, int day) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(millis); c.add(Calendar.DAY_OF_YEAR, day); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(c.getTimeInMillis()); return sdf.format(date); } public static void main(String[] args) { try{ BeforeOrAfterDate bd = new BeforeOrAfterDate(); long nowDate = System.currentTimeMillis(); System.out.println("nowDate = " + nowDate); long beforDate = bd.beforDateNum(nowDate, 3); System.out.println("beforDate = " + beforDate); Date date = new Date(beforDate); System.out.println("毫秒值结果日期 = " + date.toLocaleString()); System.out.println("yyyyMMdd结果日期 = " + bd.beforNumberDay(new Date(nowDate), 3)); System.out.println("yyyy-MM-dd结果日期 = " + bd.beforNumDay(new Date(nowDate), 3)); System.out.println("毫秒值获取日期结果 = " + bd.beforLongDate(nowDate, 3)); }catch(Exception e) { e.printStackTrace(); } } }