日期的生成

获取系统当前时间

日期类型为timestamp
日期格式为2010-11-04 16:19:42
方法1:

	Timestamp d = new Timestamp(System.currentTimeMillis()); 

方法2:

	Date date = new Date();       
	Timestamp nousedate = new Timestamp(date.getTime());

生成date数据

	/**
	 * 生成某天的date数据
	 * @param year 年份
	 * @param month 月份
	 * @param day 天
	 * @param hour 小时
	 * @param minute 分钟
	 * @param second 秒
	 * @return 生成的date数据,格式为"年-月-日 时:分:秒"
	 */
	public static Date getDate(Integer year,Integer month,Integer day,Integer hour,Integer minute,Integer second){
		Calendar now = Calendar.getInstance();
		now.set(year, month-1, day, hour, minute, second);		
		SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype1);		
		String dateNowStr = sdf.format(now.getTime());		
	//		System.out.println("格式化后的日期:" + dateNowStr);
		Date result=null;
		try {
			result=(Date) DateUtils.format1.parseObject(dateNowStr);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return result;
	}

获取一个月共有多少天

输入年份以及月份

	/**
	 * 获取一个月共有多少天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @return
	 */
	public static int getMaxDayOfMonth(int year,int month){
		Calendar cal = Calendar.getInstance();  
		//设置年份  
		cal.set(Calendar.YEAR,year);  
		//设置月份  
		cal.set(Calendar.MONTH, month-1); 

		//获取某月最大天数  
		int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); 
		return lastDay;
	}

获取指定日期前一天的日期

输入年、月、日、时、分、秒

	/**
	 * 获取某时刻24小时前的日期 
	 * @param yearstring
	 * @param monthstring
	 * @param daystring
	 * @param hourstring
	 * @param minute
	 * @param second
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
	 */
	public static Date getOneDayBefore(String yearstring,String monthstring,String daystring,String hourstring,int minute,int second){ 
		int year=Integer.parseInt(yearstring);
		int month=Integer.parseInt(monthstring)-1;
		int day=Integer.parseInt(daystring);
		int hour=Integer.parseInt(hourstring);
		Calendar date = Calendar.getInstance();
		date.set(year,month,day,hour,minute,second);
		
		date.set(Calendar.DATE, date.get(Calendar.DATE) - 1); 
		return date.getTime(); 
	}

获取指定日期前几小时的日期

输入某一日期以及需要前几个小时的日期的小时数

	/**
	 * 获取某一时间,指定前面多少小时的时间
	 * @param date 某一日期 
	 * @param hour 小时
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
	 */
	public static Date getBeforeByHourTime(Date date,int hour){ 
		Calendar calendar = Calendar.getInstance(); 
		calendar.setTime(date);
		calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hour); 
		return calendar.getTime(); 
	}

获取指定月份的第一天以及最后一天

输入年份以及月份,即可获取该年份所在月份的第一天的date数据

	/**
	* 获取一个月的第一天
	* @param year 年份(整数)
	* @param month 月份(整数)
	* @return 返回"年-月-日"类型date数据
	*/
	public static Date getFirstDayOfMonth(int year,int month) {  
		Calendar cal = Calendar.getInstance();  
		//设置年份  
		cal.set(Calendar.YEAR,year);  
		//设置月份  
		cal.set(Calendar.MONTH, month-1);  
		//获取某月的第一天 
		int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);  
		//设置日历中月份的天数  
		cal.set(Calendar.DAY_OF_MONTH, lastDay);  
		
		//格式化日期  
		SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);  
		String lastDayOfMonth = sdf.format(cal.getTime()); 
		
		Date result=null;
		try {
			result=(Date) DateUtils.format.parseObject(lastDayOfMonth);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return result;
	}

输入年份以及月份,即可获取该年份所在月份的第一天的字符串数据

	/**
	 * 获取一个月的第一天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @return 返回"年-月-日"类型字符串数据
	 */
	public static String getFirstDayStringOfMonth(int year,int month) {  
		Calendar cal = Calendar.getInstance();  
		//设置年份  
		cal.set(Calendar.YEAR,year);  
		//设置月份  
		cal.set(Calendar.MONTH, month-1);  
		//获取某月的第一天
		int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);  
		//设置日历中月份的天数  
		cal.set(Calendar.DAY_OF_MONTH, lastDay);  
		
		//格式化日期  
		SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);  
		String lastDayOfMonth = sdf.format(cal.getTime()); 
		return lastDayOfMonth;
	}

输入年份以及月份,即可获取该年份所在月份的最后一天的date数据

	/**
	 * 获取一个月的最后一天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @return 返回"年-月-日"类型date数据
	 */
	public static Date getLastDayOfMonth(int year,int month){
		Calendar cal = Calendar.getInstance();
		//设置年份  
		cal.set(Calendar.YEAR,year);  
		//设置月份  
		cal.set(Calendar.MONTH, month-1);  
		//获取某月最大天数  
		int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);  
		//设置日历中月份的最大天数  
		cal.set(Calendar.DAY_OF_MONTH, lastDay);
		
		//格式化日期  
		SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);  
		String lastDayOfMonth = sdf.format(cal.getTime());
	//		System.out.println(lastDayOfMonth);
		Date result=null;
		try {
			result=(Date) DateUtils.format.parseObject(lastDayOfMonth);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return result;
	}

输入年份以及月份,即可获取该年份所在月份的最后一天的字符串数据

	/**
	 * 获取一个月的最后一天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @return 返回"年-月-日"类型数据
	 */
	public static String getLastDayStringOfMonth(int year,int month){
		Calendar cal = Calendar.getInstance();
		//设置年份  
		cal.set(Calendar.YEAR,year);  
		//设置月份  
		cal.set(Calendar.MONTH, month-1);  
		//获取某月最大天数  
		int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);  
		//设置日历中月份的最大天数  
		cal.set(Calendar.DAY_OF_MONTH, lastDay);
		
		//格式化日期  
		SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);  
		String lastDayOfMonth = sdf.format(cal.getTime());
	//		System.out.println(lastDayOfMonth);
		
		return lastDayOfMonth;
	}

获取指定日期所在周的第一天和最后一天

输入年份,月份,日,即可获取当前日期所在周的第一天以及最后一天

    /**
     * 获取指定日期所在周的第一天和最后一天
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    public static Date[] getWeekDayStartTimeAndEndTime(String yearstring,String monthstring,String daystring,int number){
    	int year=Integer.parseInt(yearstring);
		int month=Integer.parseInt(monthstring);
		int day=Integer.parseInt(daystring);
    	
        Date[] days=new Date[2];
                
        Calendar cal = Calendar.getInstance();

        //设置年份  
  		cal.set(Calendar.YEAR,year);  
  		//设置月份  
  		cal.set(Calendar.MONTH, month-1);  
  		//设置日历中的天数  
  		cal.set(Calendar.DAY_OF_MONTH, day);
        
        int d = 0;
        if(cal.get(Calendar.DAY_OF_WEEK)==1){
            d = -6;
        }else{
            d = 2-cal.get(Calendar.DAY_OF_WEEK);
        }
        cal.add(Calendar.DAY_OF_WEEK, d);
        //所在周开始日期
		//设置小时,分钟,秒
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		days[0]=cal.getTime();
        cal.add(Calendar.DAY_OF_WEEK, 6);
        //所在周结束日期
		//设置小时,分钟,秒
		cal.set(Calendar.HOUR_OF_DAY, 23);
		cal.set(Calendar.SECOND, 59);
		cal.set(Calendar.MINUTE, 59);
		cal.set(Calendar.MILLISECOND, 0);
        days[1]=cal.getTime();
        return days;
    }

获取指定日期所在季度的第一天和最后一天

输入年份,月份,日,即可获取当前日期所在季度的第一天以及最后一天

    /**
     * 指定日期的季的第一天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @param day 天(整数)
	 * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    public static Date getFirstDayOfQuarter(int year,int month,int day) {
        Calendar cal = Calendar.getInstance();
        
        //设置年份  
  		cal.set(Calendar.YEAR,year);  
  		//设置月份  
  		cal.set(Calendar.MONTH, month-1);  
  		//设置日历中的天数  
  		cal.set(Calendar.DAY_OF_MONTH, day);
  		
        return getFirstDayOfQuarter(cal.get(Calendar.YEAR),
          getQuarterOfYear(cal.getTime()));
    }
    
    /**
     * 返回指定日期的季的最后一天
	 * @param year 年份(整数)
	 * @param month 月份(整数)
	 * @param day 天(整数)
	 * @return 生成为date类型,格式为"年-月-日 时:分:秒"     */
    public static Date getLastDayOfQuarter(int year,int month,int day) {
        Calendar cal = Calendar.getInstance();
        
        //设置年份  
  		cal.set(Calendar.YEAR,year);  
  		//设置月份  
  		cal.set(Calendar.MONTH, month-1);  
  		//设置日历中的天数  
  		cal.set(Calendar.DAY_OF_MONTH, day);
        return getLastDayOfQuarter(cal.get(Calendar.YEAR),
                getQuarterOfYear(cal.getTime()));
    }
    


    /**
     * 指定年季的季的第一天
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    @SuppressWarnings("unused")
	private static Date getFirstDayOfQuarter(Integer year, Integer quarter) {
        Calendar calendar = Calendar.getInstance();
        Integer month = new Integer(0);
        if (quarter == 1) {
            month = 1 - 1;
        } else if (quarter == 2) {
            month = 4 - 1;
        } else if (quarter == 3) {
            month = 7 - 1;
        } else if (quarter == 4) {
            month = 10 - 1;
        } else {
            month = calendar.get(Calendar.MONTH);
        }
        
        Calendar cal = Calendar.getInstance();
        if (year == null) {
            year = cal.get(Calendar.YEAR);
        }
        if (month == null) {
            month = cal.get(Calendar.MONTH);
        }
        cal.set(year, month, 1);
		//设置小时,分钟,秒
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);

        return cal.getTime();
    }
    
    /**
     * 返回指定年季的季的最后一天
     * @param year
     * @param quarter
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    @SuppressWarnings("unused")
	private static Date getLastDayOfQuarter(Integer year, Integer quarter) {
        Calendar calendar = Calendar.getInstance();
        Integer month = new Integer(0);
        if (quarter == 1) {
            month = 3 - 1;
        } else if (quarter == 2) {
            month = 6 - 1;
        } else if (quarter == 3) {
            month = 9 - 1;
        } else if (quarter == 4) {
            month = 12 - 1;
        } else {
            month = calendar.get(Calendar.MONTH);
        }
        
        Calendar cal = Calendar.getInstance();
        if (year == null) {
            year = cal.get(Calendar.YEAR);
        }
        if (month == null) {
            month = cal.get(Calendar.MONTH);
        }
        cal.set(year, month, 1);
        cal.roll(Calendar.DATE, -1);
		//设置小时,分钟,秒
		cal.set(Calendar.HOUR_OF_DAY, 23);
		cal.set(Calendar.SECOND, 59);
		cal.set(Calendar.MINUTE, 59);
		cal.set(Calendar.MILLISECOND, 0);
        
        return cal.getTime();
    }
    
    /**
     * 返回指定日期的季度
     * @param date
     * @return
     */
    @SuppressWarnings("unused")
	private static int getQuarterOfYear(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int quarter=calendar.get(Calendar.MONTH) / 3 + 1;
//        System.out.println(quarter);
        return calendar.get(Calendar.MONTH) / 3 + 1;
    }

获取指定日期所在年份的第一天以及最后一天

输入年份,即可获取当前日期所在年份的第一天以及最后一天

    /**
     * 获取某年第一天日期
     * @param year 年份(整数)
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    public static Date getYearFirst(int year){
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        
		//设置小时,分钟,秒
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        Date currYearFirst = calendar.getTime();
        return currYearFirst;
    }
     
    /**
     * 获取某年最后一天日期
     * @param year 年份(整数)
     * @return 生成为date类型,格式为"年-月-日 时:分:秒"
     */
    public static Date getYearLast(int year){
    	Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        calendar.roll(Calendar.DAY_OF_YEAR, -1);
        
		//设置小时,分钟,秒
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.MILLISECOND, 0);
        Date currYearLast = calendar.getTime();
         
        return currYearLast;
    }

获取指定时间段的每分钟数据

输入起始日期以及终止日期

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
     * 每分钟时间
     * 这里是获取两个日期之间的所有日期(包涵begin和end)
     * @Description TODO
     * @param begin 起始时间
     * @param end 终止时间
     * @return
     */ 
	public static List<Timestamp> getBetweenDatesByMinute(Date begin, Date end) { 
		List<Timestamp> result = new ArrayList<Timestamp>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(new Timestamp(tempStart.getTime().getTime())); 
			tempStart.add(Calendar.MINUTE, 1); 
			begin = tempStart.getTime();
		} 
		return result; 
	}

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
     * 每分钟时间
     * 这里是获取两个日期之间的所有日期(包涵begin和end)
     * @Description TODO
     * @param begin 起始时间
     * @param end 终止时间
     * @return
     */ 
	public static List<Date> getBetweenDatesByMinute(Date begin, Date end, int number) { 
		List<Date> result = new ArrayList<Date>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(tempStart.getTime()); 
			tempStart.add(Calendar.MINUTE, 1); 
			begin = tempStart.getTime();
		} 
		return result; 
	}

获取指定时间段的每小时数据

输入起始日期以及终止日期

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
     * 每小时时间
     * 这里是获取两个日期之间的所有日期(包涵begin和end)
     * @param begin 起始时间
     * @param end 终止时间
     * @return
     */ 
	public static List<Timestamp> getBetweenDatesByHour(Date begin, Date end) { 
		List<Timestamp> result = new ArrayList<Timestamp>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(new Timestamp(tempStart.getTime().getTime())); 
			tempStart.add(Calendar.HOUR_OF_DAY, 1); 
			begin = tempStart.getTime();
		} 
		return result; 
	}

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
     * 每小时时间
     * 这里是获取两个日期之间的所有日期(包涵begin和end)
     * @Description TODO
     * @param begin 起始时间
     * @param end 终止时间
     * @return
     */ 
	public static List<Date> getBetweenDatesByHour(Date begin, Date end, int number) { 
		List<Date> result = new ArrayList<Date>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(tempStart.getTime()); 
			tempStart.add(Calendar.HOUR_OF_DAY, 1); 
			begin = tempStart.getTime();
		} 
		return result; 
	}

获取指定时间段的每天数据

输入起始日期以及终止日期

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd")
     * 获取两个日期之间的所有日期(不包涵begin和end)
     * 注释部分:这里是获取两个日期之间的所有日期(包涵begin和end)
     * @param begin
     * @param end
     * @return
     */ 
	public static List<Timestamp> getBetweenDatesByDay(Date begin, Date end) { 
		List<Timestamp> result = new ArrayList<Timestamp>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(new Timestamp(tempStart.getTime().getTime())); 
			tempStart.add(Calendar.DAY_OF_YEAR, 1); 
			begin = tempStart.getTime();
		}
		return result; 
	}

	 /**
     * 获取两个日期之间的所有日期("yyyy-MM-dd")
     * 获取两个日期之间的所有日期(不包涵begin和end)
     * 注释部分:这里是获取两个日期之间的所有日期(包涵begin和end)
     * @Description TODO
     * @param begin
     * @param end
     * @return
     */ 
	public static List<Date> getBetweenDatesByDay(Date begin, Date end, int number) { 
		List<Date> result = new ArrayList<Date>(); 
		Calendar tempStart = Calendar.getInstance(); 
		tempStart.setTime(begin); 
		
		while(begin.getTime()<=end.getTime()){ 
			result.add(tempStart.getTime()); 
			tempStart.add(Calendar.DAY_OF_YEAR, 1); 
			begin = tempStart.getTime();
		}
		return result; 
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuxu1116

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值