Java 日期工具类Calendar 获取指定日期

获取当前日期

		Calendar calendar=Calendar.getInstance();
		System.out.println(calendar.get(Calendar.YEAR));
		System.out.println(calendar.get(Calendar.MONTH)+1);
		
		System.out.println("现在是:"+calendar.get(Calendar.YEAR)+"年"
				+(calendar.get(Calendar.MONTH)+1)+"年"
				+calendar.get(Calendar.DAY_OF_MONTH)+"日"
				+calendar.get(Calendar.HOUR_OF_DAY)+"时"
				+calendar.get(Calendar.MINUTE)+"分"
				+calendar.get(Calendar.SECOND)+"秒");
	}

当前日期从系统默认的1900年1月1日开始计算多少天后的日期

Calendar car = Calendar.getInstance(); 
car.set(Calendar.YEAR, 1900); 
car.set(Calendar.MONTH, 1); 
car.set(Calendar.DAY_OF_YEAR, 1); 
car.add(Calendar.DAY_OF_YEAR, Integer.valueOf(StrVal));
Date d = car.getTime(); 
value = DateFormatUtils.format(d, "yyyy-MM-dd");

一年前的今天

 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd");
 java.util.Date timeNow;
 java.util.Date timeNow1;
 String qn = null;
 	
 try {
 timeNow = df1.parse(month);
 String date1 = df.format(timeNow);
 timeNow1 = df.parse(date1);
 Calendar calendar = Calendar.getInstance();  
 calendar.setTime(timeNow1); 
 calendar.add(Calendar.YEAR, -1); //计算一年前的日期
 qn = df.format(calendar.getTime()); //输出格式为 yyyy-MM-dd的日期} catch (ParseException e) {// TODO Auto-generated catch block e.printStackTrace(); }

获取指定日期

​
@Service
public class IndexService {
	public List<IBean> getGztzd(String type) {
		String date = getDate(type);
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String time = format.format(Calendar.getInstance().getTime());


	private String getDate(String type) {// 处理日期
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		String date = "";
		if (type.equals("1")) {// 上个星期的日期
/*			c.setTime(new Date());
			c.add(Calendar.DATE, -7);*/
			c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
			c.set(Calendar.HOUR_OF_DAY, 0);
			c.set(Calendar.MINUTE, 0);
			c.set(Calendar.SECOND, 0);
			Date day = c.getTime();
			date = format.format(day);
		}
		if (type.equals("2")) {// 上个月的日期 只考虑当年 不包含从 今年的1月份到去年的12月
			c.setTime(new Date());
			 c.add(Calendar.MONTH, 0);  
		     c.set(Calendar.DAY_OF_MONTH, 1); 
			 date = format.format(c.getTime());
			
		}
		if (type.equals("3")) {// 上一年的日期 只考虑当年 
            c.add(Calendar.YEAR, 0);  
            c.set(Calendar.DAY_OF_YEAR, 1);
            date = format.format(c.getTime());
		}
		return date;	
	}




	private String ztrq(String time){//昨天的日期
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		String date = "";
		c.setTime(new Date());
		c.add(Calendar.DATE,-1);
		date = format.format(c.getTime());
		return date;
	}
	
	private String ylrq(String time){//上个月的日期 考虑跨年 今年的1月份计算去年12月份 一个月前的日期
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		String date = "";
		c.setTime(new Date());
		 c.add(Calendar.MONTH, 0);  
	     c.set(Calendar.DAY_OF_MONTH, 1); 
		 date = format.format(c.getTime());
		return date;
	}
	
	private String nlrq(String time){//去年的日期 同上
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = Calendar.getInstance();
		String date = "";
		c.setTime(new Date());
        c.add(Calendar.YEAR, 0);  
        c.set(Calendar.DAY_OF_YEAR, 1);
        date = format.format(c.getTime());
		return date;
	}
	

​

获取季度与当年当月开始的时间

//获取当前季度的开始时间
	public static Date getCurrentQuarterStartTime() { 
		Calendar c = Calendar.getInstance(); 
		int currentMonth = c.get(Calendar.MONTH) + 1; 
		SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
		Date now = null; 
		try { 
		if (currentMonth >= 1 && currentMonth <= 3) 
		c.set(Calendar.MONTH, 0); 
		else if (currentMonth >= 4 && currentMonth <= 6) 
		c.set(Calendar.MONTH, 3); 
		else if (currentMonth >= 7 && currentMonth <= 9) 
		c.set(Calendar.MONTH, 6); 
		else if (currentMonth >= 10 && currentMonth <= 12) 
		c.set(Calendar.MONTH, 9); 
		c.set(Calendar.DATE, 1); 
		String nowe = null;
		nowe = shortSdf.format(c.getTime()); 
		now = shortSdf.parse(nowe);   
		} catch (Exception e) { 
		e.printStackTrace(); 
		} 
		return now; 
		}
	
	//当月的开始时间
	public static Date getLastMonthStartTime() {  
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.MONTH, 0);
		cal.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		Date date = cal.getTime();
        
        return date;
    }
	
	
	//获取当年的开始时间
	public static Date getCurrentYearStartTime() { 
	 	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance(); 
        Date now = null; 
        try { 
            c.set(Calendar.MONTH, 0); 
            c.set(Calendar.DATE, 1); 
            c.set(Calendar.HOUR_OF_DAY, 0);
    		c.set(Calendar.MINUTE, 0);
    		c.set(Calendar.SECOND, 0);
            now = format.parse(format.format(c.getTime())); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return now; 
	} 

java获取上个月的最后一天

	String lastDay = lastMonthDay();
	private String lastMonthDay(){
/*		  Calendar cal = Calendar.getInstance();
		  //下面可以设置月份,注:月份设置要减1,所以设置1月就是1-1,设置2月就是2-1,如此类推
		  cal.set(Calendar.MONTH, 1-1);
		  //调到上个月
		  cal.add(Calendar.MONTH, -1);
		  //得到一个月最最后一天日期(31/30/29/28)
		  int MaxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		  //按你的要求设置时间
		  cal.set( cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23, 59, 59);
		  //按格式输出
		  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		  String date = "";
		  date = sdf.format(cal.getTime());*/
		  Calendar c = Calendar.getInstance();
		  c.add(Calendar.MONTH, -1);
		  SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM");
		  String time = format.format(c.getTime());
		//得到一个月最后一天日期(31/30/29/28)
		  int MaxDay=c.getActualMaximum(Calendar.DAY_OF_MONTH);
		  //按你的要求设置时间
		  c.set( c.get(Calendar.YEAR), c.get(Calendar.MONTH), MaxDay, 23, 59, 59);
		  //按格式输出
		  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		  String date = sdf.format(c.getTime()); //上月最后一天
		return date;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/82400203