获取当前日期前(后)x天的日期Java代码
2018-07-20 来源:open-open
获得当前输入日期前(后)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(); } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:Java操作数组的常用算法总结
最新资讯
热门推荐